我刚刚开始使用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烛台图的一个例子很感兴趣。
发布于 2012-02-15 04:10:20
类似问题的答案请参见here,有关mathplotlib的金融烛台图的更多信息,请参阅here。
要从sp500中仅获取adj close,可以使用类似sp500["Adj Close"]的命令,然后将其传递给相关的matplotlib plot命令plt.plot(datelist, sp500["Adj Close"] ),其中datelist是x轴上的日期列表。
我相信你可以通过参考sp500.index获得日期列表,更多信息请参见here。
至于将其传递给plot命令的问题,如下所示
函数date2num来自matplotlib.dates包的datelist = [date2num(x) for x in sp500.index]。
在设置了相关的子图之后,然后调用适当的fill_between_alpha命令来填充线下的区域,就像您链接到的Yahoo图一样。
请参阅Alpha Fill Between和标题下的here,了解另一个显示已填充折线图的代码片段,其中包含正确的日期打印。
初始链接有一个样例matplotlib片段,其中还详细介绍了日期格式和格式。
发布于 2013-12-14 02:42:08
这将为您提供调整关闭列与您的日期索引( 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()https://stackoverflow.com/questions/9283166
复制相似问题