多个图表来自多个数据帧的pdf

时间:2017-11-07 01:05:08

标签: python pandas bokeh

我想定期创建包含我感兴趣的股票的pdf以及每只股票的相关图表。

目前,我为每个技术指标(价格,移动平均线,指数移动平均线等)设置了一个数据框,并希望为每个时间序列绘制每个数据帧的相关信息。

到现在为止,我已经使用了散景,我可以绘制我想要的内容,但每个自动收报机都可以... ...

我的代码是:

# Import dataframes from import_data.py
prices = pd.read_pickle('prices.pkl')
date = prices.index
# price 20, 50, 80 MA
ma20 = pd.rolling_mean(prices, window=20)
ma50 = pd.rolling_mean(prices, window=50)
ma80 = pd.rolling_mean(prices, window=80)
# price with 20EMA+Bollinger Bands - 20MA
ema20 = pd.ewma(prices, span=20)
bbandsup = pd.ewma(prices, span=20) + 2 * pd.ewmstd(prices, span=20)
bbandslo = pd.ewma(prices, span=20) - 2 * pd.ewmstd(prices, span=20)


plot = figure(title="Price Chart and Technical Indicators", x_axis_label='Date', y_axis_label='Price')

plot.line(date, prices['SPY'], legend='Price', line_width=2)
plot.line(date, ema20['SPY'], legend='EMA-20', line_width=2, line_color="red")
plot.line(date, ma20['SPY'], legend='EA-20', line_width=2, line_color="green")
plot.line(date, bbandsup['SPY'], legend='Bollinger', line_width=2, line_color="black", line_dash="4 4")
plot.line(date, bbandslo['SPY'], legend='Bollinger', line_width=2, line_color="black", line_dash="4 4")

show(plot)

价格数据框的日期结构为索引,列标题为自动收报机字符串。例如,第一列标题是SPY,第二列是AAPL等......

我希望能够在攻击多个情节兽之前将它们全部打印成pdf。

提前致谢!

1 个答案:

答案 0 :(得分:0)

多个绘图并不比您现有的更复杂 - 您只需为每个绘图调用figure并使用Bokeh layouts合并生成的绘图。

然而,PDF生成涉及更多。 Bokeh具有将文档呈现为PNG和SVG的功能,但还没有PDF生成。您可以通过Github提交功能请求,也可以自己实施。在后一种情况下,您可以生成PNG / SVG文件并从中创建PDF文档,也可以从bokeh.io.export_png获取灵感,并使用Selenium和PhantomJS实现直接导出为PDF。