在Bokeh服务器中更新hbar_stack

时间:2018-01-25 21:21:42

标签: python bokeh

我正在尝试更新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

1 个答案:

答案 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。更改此项显示了所需的结果,图表正在更新。