我有两个相同单位的变量,想要在同一条x轴上用Bokeh绘制。看起来plot.multi_line是正确的工具,但我无法从文档中找到正确的语法。我尝试过的方法(从文档中收集):
# df is a pandas DataFrame with contains 3 columns x, y1, y2
source = ColumnDataSource(data=df)
plot=figure()
plot.multi_line(['x','x'], ['y1', 'y2'], source=source)
另外尝试了以下方法:
plot.multi_line(xs=['x','x'], ys=['y1', 'y2'], source=source)
结果为
运行时错误: 提供用户定义的数据源和可迭代值给glyph方法是不可能的。要么:
直接将所有数据作为文字传递:
p.circe(x=a_list, y=an_array, ...)
或者,将所有数据放入ColumnDataSource中并传递列名:
source = ColumnDataSource(data=dict(x=a_list, y=an_array)) p.circe(x='x', y='y', source=source, ...)
文档给出了这个例子:
p.multi_line([[1, 3, 2], [3, 4, 6, 6]], [[2, 1, 4], [4, 7, 8, 5]],
color=["firebrick", "navy"], alpha=[0.8, 0.3], line_width=4)
显然,我不想使用原始列表来传递这些值。我不明白它,需要一点帮助。
multi_line
很有用。类比于使用patches
绘制国家多边形,国家边界可能会有几个不相连的部分(例如海岛),但仍代表一个单一的逻辑实体。 - bigreddot