我正在尝试更新Bokeh服务器应用程序中的条形图。我已经在这样的折线图中这样做了:
p.line(x="x", y="y1", source=self.source01, line_width=2, line_alpha=1.0
通过在以下函数中更新source
字典:
self.source01.data = dict(
x=self.df_update['timestamp_h'],
y1=self.df_update[dropdown_aux_surp.value])
但这对我创建的hbar_stack
似乎不起作用:
accu_result_Qaux_therm = 0
acc_result_Qaux_el = 0
acc_result_Q45 = 0
acc_result_Q65 = 0
acc_result_Q85 = 0
self.categories = ['Qaux_therm', 'Qaux_el', ' Q45', 'Q65', 'Q85']
self.exports_source = ColumnDataSource(data=dict(categories=[], Berechnete=[]))
self.exports_dict = {'categories': self.categories ,
'Berechnete': [ accu_result_Qaux_therm, acc_result_Qaux_el, acc_result_Q45, acc_result_Q65, acc_result_Q85]}
self.exports_source.data = self.exports_dict
p_1 = figure(y_range=self.categories, plot_height=250, x_range=(-16, 16),
title="Kumulierte Jahreswerte",
toolbar_location=None)
p_1.hbar_stack(status, y='categories', height=0.9, color='red',
source=self.exports_source.data,
legend=['Legende'])
如果尝试更新hbar_stack
的dict以将新值加载到图表中,则不会发生任何事情:
accu_result_Qaux_therm = 10
acc_result_Qaux_el = 20
acc_result_Q45 = 44
acc_result_Q65 = 5
acc_result_Q85 = 6
self.exports_dict = {'categories': self.categories,
'Berechnete': [accu_result_Qaux_therm, acc_result_Qaux_el, acc_result_Q45,
acc_result_Q65, acc_result_Q85]}
self.exports_source.data = self.exports_dict
如果能够更有效地实现这一点,我深表歉意。但我是Python和Bokeh的新手,只需要一些启示或信息,如果我需要以不同的方式更新hbar_stack
。
答案 0 :(得分:0)
我很抱歉,我自己解决了这个问题。我忽略了以下内容:
有一个拼写错误:而不是
p_1.hbar_stack(status, y='categories', height=0.9, color='red',
source=self.exports_source.data,
legend=['Legende'])
需要阅读:
p_1.hbar_stack(status, y='categories', height=0.9, color='red',
source=self.exports_source,
legend=['Legende'])
即。我没有引用ColumnDataSource对象self.exports_source
,而是引用了字典self.exports_source.data
。更改此项显示了所需的结果,图表正在更新。