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 收盘价和其下方的成交量?我也对绘制 OHLC 烛台图的示例感兴趣。

4

2 回答 2

3

有关我对类似问题的回答,请参见此处,有关 mathplotlib 财务烛台图的更多信息,请参见此处。

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

我相信您可以通过引用获取日期列表sp500.index,请参阅此处了解更多信息。

至于您将其传递给 plot 命令的问题,例如

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

设置相关子图后,然后调用适当的填充命令到fill_between_alpha您链接到的雅虎图线下的区域。

请参阅此处Fill Between 和 Alpha标题下的另一个片段,该片段显示了一个填充的折线图,并带有正确的日期打印。

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

于 2012-02-14T20:10:20.377 回答
0

这可以让您仅绘制 Adj Close 列与 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()

同样,您可以以相同的方式绘制 Volume:

vol = sp500['Volume']
vol.plot()
plt.show()
于 2013-12-13T18:42:08.470 回答