Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个图像上用python绘制多个图形_Python - Fatal编程技术网

在一个图像上用python绘制多个图形

在一个图像上用python绘制多个图形,python,Python,我在画股票价格,它是按照几何布朗运动演变的。你不需要理解数学,我已经处理好了。但是,我的情节不是我想要的。他们太纠结在一起了 出于某种原因,它添加了这些直线,我认为这可能是最合适的直线,但我根本看不出它来自我的代码 这是我的python代码。有什么建议可以帮我更好地辨别路径吗, 去掉那些直线 from scipy.stats import norm from scipy import sqrt import matplotlib.pyplot as plt def Euler_disc(S0,

我在画股票价格,它是按照几何布朗运动演变的。你不需要理解数学,我已经处理好了。但是,我的情节不是我想要的。他们太纠结在一起了

出于某种原因,它添加了这些直线,我认为这可能是最合适的直线,但我根本看不出它来自我的代码

这是我的python代码。有什么建议可以帮我更好地辨别路径吗, 去掉那些直线

from scipy.stats import norm
from scipy import sqrt
import matplotlib.pyplot as plt
def Euler_disc(S0, mu, sigma, T, n): 
    times = [0]
    stocks = [S0]
    dt = ((float(T)/n))
    for i in range(0, 10): 
        for x in range(0, n): 
            times.append(times[x] + dt)
            stocks.append(stocks[x] + mu * stocks[x] * dt \
            + sigma * stocks[x] * sqrt(dt) * norm.rvs(0, 1, 1))
        plt.plot(times, stocks)

您正在每个内部循环中重用
times
stocks
变量。因此,每次你到达plt.plot(时间,股票),你都会回复你所有的计算数据

以下是固定版本:

from scipy.stats import norm
from scipy import sqrt
import matplotlib.pyplot as plt
def Euler_disc(S0, mu, sigma, T, n): 
    dt = ((float(T)/n))
    for i in range(0, 10): 
        times = [0]
        stocks = [S0]
        for x in range(0, n): 
            times.append(times[x] + dt)
            stocks.append(stocks[x] + mu * stocks[x] * dt \
            + sigma * stocks[x] * sqrt(dt) * norm.rvs(0, 1, 1))
        plt.plot(times, stocks)

之所以画这些线,是因为您的数据顺序不正确。Matplotlib不会对数据点进行排序,而是一个接一个地绘制,将每个点与上一个点连接起来。因此,如果在最后一个点之后返回到例如
0,0
,则从最后一个点到
0,0
将有一条直线。您使用
i
循环的目的是什么?绘制stockNice渔获物的十条路径。尽管如此,您不需要最后一行,因为我希望每个图表从相同的股票价值开始。我画了两种方式,我想要没有最后一行的版本。好的,我删除了它。我刚刚注意到这里有一个随机分量,我刚才问自己“他为什么要画10次同一条线?”。现在说得通了!