我正在尝试使用 ColumnDataSource 更新 Span,但信息未传递到源。不幸的是,Span 没有参数“来源”,那么有更好的方法吗?
我已经定义了我的来源、图形和线条,如下所示:
m1_source = ColumnDataSource(data=dict(x1=[], y1=[]))
m1_spans = ColumnDataSource(data=dict(x1=[]))
p = figure(x_axis_type="datetime", title="", sizing_mode="fixed", height = 500, width = 1400)
p.line(x ="x1", y="y1", color = 'blue', source=m1_source)
然后我有一个 for 循环,理想情况下应该绘制多个跨度,每个 'i' 将是一个单独的时间戳:
for i in m1_spans.data['x1']:
p.add_layout(Span(location=i, dimension='height', line_color='red', line_dash='solid', line_width=1))
这取自我的 update() 函数:
m1_source.data = dict(
x1=machine_1_vals['mpTimestamp'],
y1=machine_1_vals['Value'])
m1_spans.data = dict( x1=ToolsDF.loc[ToolsDF['Value'] == float(vals['Tool_val'])]['Timestamp'])
我已经检查过了,m1_spans 确实成功返回了多个时间戳,所以错误不应该在这里。
我感到困惑的原因是因为我的 p.line 将成功更新而没有问题,但它确实有一个source参数,而 span 没有。
对于如何解决此问题的任何建议,我将不胜感激。如果我应该提供更多信息,我深表歉意,并且可以根据需要进行更新,我只是试图为您保持简短。
谢谢。