【问题标题】:Multiple plots to pdf from multiple dataframes从多个数据帧到 pdf 的多个绘图
【发布时间】:2017-11-07 19:28:18
【问题描述】:

我想定期创建 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)

prices 数据框具有日期结构作为索引,列标题是股票代码字符串。例如,第一列标题是 SPY,第二列是 AAPL,等等……

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

提前致谢!

【问题讨论】:

    标签: python pandas bokeh


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-05-04
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 2022-08-12
      • 1970-01-01
      • 2013-07-05
      相关资源
      最近更新 更多