Matplotlib Hist无法加载或持续时间过长?

时间:2017-12-04 12:07:21

标签: python matplotlib histogram montecarlo graph-visualization

我试图根据10k迭代的蒙特卡罗模拟绘制直方图。使用plt.plot(price_list)进行绘图很好,但直方图没有加载或者它需要花费很长时间(我认为)。

我已经运行了一个小时的代码,但在它仍然无法加载后放弃了。我已经尝试将后端更改为qt5agg并降低垃圾箱无效。

如果我显着降低迭代次数,代码就可以工作。我尝试使用100并且图表很好。

我正在使用jupyter笔记本来运行。以下是我写的代码。

import numpy as np
import pandas as pd
import pandas_datareader.data as wb
import matplotlib.pyplot as plt
from scipy.stats import norm
%matplotlib inline

plt.rc("axes.spines", top=False, right=False)

ticker = 'PG'
data = pd.DataFrame()
data[ticker] = wb.DataReader(ticker, 'yahoo', '2007-1-1')['Adj Close']

log_returns = np.log(data / data.shift(1))
u = log_returns.mean()
var = log_returns.var()
stdev = log_returns.std()
drift = u - (0.5 * var)

t_intervals = 250
iterations = 10000

daily_returns = np.exp(drift.values + stdev.values * norm.ppf(np.random.rand(t_intervals, iterations)))

s0 = data.iloc[-1]

price_list = np.zeros_like(daily_returns)
price_list[0] = s0

for t in range(1, t_intervals):
    price_list[t] = price_list[t - 1] * daily_returns[t]

plt.figure(figsize=(20,12))
plt.plot(price_list);
plt.figure(figsize=(20,12))
plt.hist(price_list, bins = 20);

0 个答案:

没有答案