一旦我单击“刷新按钮”,我希望使用新数据更新绘图。但是旧数据保留在图中,并且它不断向右移动并且刻度消失。
一开始,该图看起来符合我的预期(X 轴信息除外。作为一个附带问题,我在 Bokeh 属性中查找了 DataSpec(),但不知道如何将 传递accept_datetime=False
给x
线图中的参数。我的代码是看起来像这样。)
数据目录看起来像
root-|
|-weeklydata1.pkl
|-weeklydata2.pkl
|-datashow.py
这是腌制的数据文件。
from bokeh.layouts import column, row
from bokeh.models.widgets import Button
from bokeh.plotting import figure, show
from pandas import *
# Callbacks
def update_data():
# Set up plot
global p
global f
# p = figure(title="testing plot")
# Set up data
# weeklybdxdata(1)
print("reading new data")
df1 = read_pickle('weeklydata2.pkl')
for j in df1.columns:
p.line(df1.index,
df1[j],
legend=j,
line_color=f[j])
p.circle(df1.index,
df1[j],
size=10,
color=f[j])
return p
# Set up data
df =read_pickle('weeklydata1.pkl')
f = dict(OAT='green', SAT='orange', OAH='red')
# Set up plot
p = figure(title="testing plot")
for i in df.columns:
p.line(df.index,
df[i],
legend=i,
line_color=f[i])
p.circle(df.index,
df[i],
size=10,
color=f[i])
# Set up widgets
button = Button(label='Refresh')
button.on_click(update_data)
inputs = column(button)
curdoc().add_root(row(inputs, p, width=800))
curdoc().title = "Test Plot"
我避免使用bokeh.models.ColumnDataSource
,因为我找不到一些关于如何传递数据帧的好例子。
使用 启动代码后bokeh serve datashow.py
,初始图如下所示(小抱怨:但 xaxis 以毫秒为单位)
单击刷新后,连续多次刷新后,情节不断移动,轴信息消失。
我正在使用最新版本的 Bokeh 1.4.0