首页 文章

在IPython中用Pandas绘制股票图表

提问于
浏览
3

我刚开始使用Python / Pandas并将以下代码放在一起绘制标准普尔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 回答

  • 3

    有关mathplotlib的财务烛台图的更多信息,请参阅here以获取类似问题的答案,并查看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图 .

    请参阅 Fill Between and Alpha Headers 下的here,以获取显示正确日期打印的填充折线图的另一个代码段 .

    初始链接有一个示例matplotlib片段,它还更详细地介绍了日期格式和格式 .

  • 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()
    

相关问题