在IPython中用Pandas绘制股票图表

时间:2012-02-14 19:42:20

标签: matplotlib pandas

我刚刚开始使用Python / Pandas,并将以下代码放在一起绘制S& P 500。

from pandas.io.data import DataReader
# returns a DataFrame
sp500 = DataReader("^GSPC", "yahoo", start=datetime.datetime(1990, 1, 1))
sp500.plot(figsize = (12,8))

看起来这是在一张图上绘制高,低,开,关,调和闭合的全部图。是否有一种简单的方法可以在一个图表中绘制adj close,并在其like they do on Yahoo和其他大多数金融站点下方的音量?我也想绘制一个绘制OHLC烛台图的例子。

2 个答案:

答案 0 :(得分:3)

有关类似问题的答案,请参阅here,有关mathplotlib的财务烛台图表的详细信息,请参见here

要从sp500获得接近,你可以使用类似sp500["Adj Close"]的东西,然后将其传递给相关的matplotlib plot命令plt.plot(datelist, sp500["Adj Close"] ),其中datelist是x轴上的日期列表。

我相信您可以通过引用sp500.index获取日期列表,有关详细信息,请参阅here

关于将它传递给plot命令的问题,比如

datelist = [date2num(x) for x in sp500.index]其中函数date2num来自matplotlib.dates包。

设置相关子图后,然后调用相应的填充命令到fill_between_alpha线下的区域,如您链接的Yahoo图。

请参阅填充与Alpha 标题下的here,以获取显示填充折线图的正确日期打印的另一个代码段。

初始链接有一个样本matplotlib片段,它还详细介绍了日期格式和格式。

答案 1 :(得分:0)

这将为您提供仅调整关闭列与您的DataFrame索引(日期)的关系图。

from pandas.io.data import DataReader
sp500 = DataReader("^GSPC", "yahoo", start=datetime.datetime(1990, 1, 1)) 
close = sp500['Adj Close']
close.plot()
plt.show()

同样,你可以用同样的方式绘制音量:

vol = sp500['Volume']
vol.plot()
plt.show()