Plot Bokeh:当类别不共享同一索引或x轴参考时,如何绘制多线图(已更新)
我正在尝试使用下面的代码在Bokeh创建一个多线图 生成绘图,但不显示数据 我想得到的是每个项目的线条图。我可以在一些样本的情况下手动执行此操作,制作单独的线图。但是我想在有相对大量的类别(“项目”,在下面显示的数据表中)的情况下自动执行此操作 谢谢你的反馈Plot Bokeh:当类别不共享同一索引或x轴参考时,如何绘制多线图(已更新),plot,bokeh,line-plot,Plot,Bokeh,Line Plot,我正在尝试使用下面的代码在Bokeh创建一个多线图 生成绘图,但不显示数据 我想得到的是每个项目的线条图。我可以在一些样本的情况下手动执行此操作,制作单独的线图。但是我想在有相对大量的类别(“项目”,在下面显示的数据表中)的情况下自动执行此操作 谢谢你的反馈 import pandas as pd from bokeh.core.properties import value from bokeh.plotting import figure, show from bokeh.io import
import pandas as pd
from bokeh.core.properties import value
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
from bokeh.models import ColumnDataSource
bokeh_test=pd.read_excel(data, 'bokeh')
display(bokeh_test)
item x y
A 4 0.00
A 5 0.00
A 36 39.88
A 66 46.20
A 97 32.93
A 127 25.78
A 158 21.92
A 189 18.64
B 6 4.47
B 7 1.17
B 8 0.00
B 38 45.70
B 68 61.68
B 98 43.11
B 129 25.05
B 160 33.97
B 190 32.06
B 221 29.22
B 251 24.94
output_notebook()
source=ColumnDataSource(data=bokeh_test)
p = figure(plot_height=400,
plot_width=400,
x_axis_label='x',
y_axis_label='y'
)
p.multi_line(xs='x',
ys='y',
source=source
)
show(p)
更新:
我找到了绘制数据的方法。这是更新后的代码和绘图图像。我使用的是Bokeh版本1.3.4。当切换到最新版本(2.2.3)时,我得到一个关于CDSView与线图不兼容的错误(显然是因为数据不连续或点未连接)
尝试将
x_range=['A','B']
添加到调用图(…)
。稍后,您将能够通过分配到p.x_range.factors
来更新它。嗨@EugenePakhomov,我更新了原始帖子。我找到了我想做的事情的答案,但是现在我在切换到更新版本的Bokehy时出错了。您的更新与原始问题完全无关,所以您应该问一个新问题。不管怎样,你得到的不是一个错误,而是一个警告,一个自我描述的警告。
output_notebook()
source=ColumnDataSource(data=bokeh_test)
list1=np.unique(source.data['item']).tolist() # Getting a list for using with CDSView filters
# result = ['A', 'B']
tools = 'save, pan, box_zoom, reset, wheel_zoom,tap'
p = figure(plot_height=400,
plot_width=400,
x_axis_label='x',
y_axis_label='y',
toolbar_location='above',
tools=tools
)
color=['red', 'blue', 'green']
for i in range(len(list1)):
view=CDSView(source=source, filters=[GroupFilter(column_name='item', group=list1[i])])
p.line(x='x',
y='y',
source=source,
line_color=color[i],
view=view,
legend=list1[i],
line_width=2
)