【发布时间】:2014-10-26 02:37:50
【问题描述】:
我在创建绘图以及将时间戳转换为日期时遇到问题。
以下代码将来自 yahoo Finance 的数据提取到 pandas 数据框中。日期用作该文件中数据集的索引,如下所示:
2007-05-01 00:00:00
首先,我想将该索引从日期时间转换为日期格式,但更重要的是,我想弄清楚使用 matplotlib 在下面的代码中重现从rels.plot() 获得的图,以便我可以添加一个给定日期的垂直线(格式不需要完全相同。)
import pandas.io.data as web
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
all_data = {}
for ticker in ['AAPL','MSFT']:
all_data[ticker] = web.get_data_yahoo(ticker, '5/1/2007','10/1/2007')
price = pd.DataFrame({tic:data['Adj Close']
for tic, data in all_data.iteritems()})
volume = pd.DataFrame({tic:data['Volume']
for tic, data in all_data.iteritems()})
returns = price.pct_change()
rels = price/price.ix[0]
rels.plot()
plt.Line2D(rels.index,rels.AAPL)
plt.show()
上面的代码会下载所有数据,以便您可以在需要时使用我在您的机器上使用的相同数据。现在,在我的 IP[y] 笔记本电脑上,此代码运行,但 plt.show() 不生成绘图。代码应该生成两个图(第一个是我试图用 matplotlib 重新创建的参考图。)
【问题讨论】:
-
有什么事情发生吗,还是只是空无一物?另外,你有没有试过解决它?它对我来说很好用。
-
它打印出两个图?
-
就是这样,谢谢!我应该一直使用绘图而不是 Line2D。你知道我将如何将 eels.index 转换为日期格式而不是日期时间吗?
标签: python matplotlib pandas