【问题标题】:Pandas plots using Bokeh server?使用 Bokeh 服务器的 Pandas 绘图?
【发布时间】:2017-03-06 18:08:57
【问题描述】:

是否可以在不使用 show() 的情况下在 Bokeh 中显示和更新 Pandas 图?网上有这方面的例子吗?我似乎找不到任何东西。例如,类似:

def bar_plot(fig, source):
    p = pd.DataFrame()
    p = p.from_dict(source.data)

    fig = p.plot.bar()
    return fig

def update_data():
    data = source.data
    data['y'] = random.sample(range(0,100),len(data['y']))
    source.data = data

button.on_click(update_data)
source = ColumnDataSource(data)

fig = bar_plot(fig, source)
layout = layout([[button,fig]])
curdoc().add_root(layout)

【问题讨论】:

  • 为什么要使用 bar 而不是 vbar?如果您的数据在数据框中,您可以轻松地将其转换为 ColumnDataSource 并使用我发布的方法 - 您在此处复制并更改了?
  • 你的方法对我有用。我想制作一个简单的应用程序,它有两个选项卡 - 一个用于绘制条形图,一个用于绘制文字云。我只是想弄清楚如何定义和调用我自己的绘图函数,该函数将绘制除 Bar、vbar 等内置 Bokeh 之外的东西。但这听起来并不容易。
  • 哦,就像您想在其他库中绘图并将这些传递给散景一样,抱歉我误解了这一点。如果您真的想使用其他不采用散景源的绘图 - 您可以通过重新创建每次手动更新图表。
  • @Okonomiyaki 这是怎么做到的?
  • 等我回家做个测试例子。

标签: python bokeh


【解决方案1】:

Pandas 内置的.plot 方法使用 Matplotlib 生成图像。 Bokeh 服务器无法跨 Python/JS 边界同步或更新 MPL 图。 Bokeh 服务器只能显示和更新使用本机 Bokeh API 创建的图(即,您可以使用 Figure.vbar 或类似的 Bokeh 函数从数据框中创建条形图)。

【讨论】:

  • 谢谢!我想创建一个带有两个选项卡的简单应用程序 - 一个显示条形图,一个带有词云。我知道在 Bokeh 之外制作词云的方法,但这是否可以 in Bokeh?
  • 有几种可能性。不确定它们中的任何一个都是完美的。但 SO 不太适合投机性讨论,所以我建议 public mailing list 是一个更好的讨论场所
猜你喜欢
  • 2015-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多