ColumnDataSource中的Bokeh折线图颜色

3

我想使用ColumnDataSource设置Bokeh线图(Bokeh版本0.12.5)的颜色。 然而,在线图中没有画出任何内容。 另一方面,如果我使用圆形渲染器,一切都像预期的那样工作。 下面是一个带有线图和圆图的示例程序,您可以注释/取消注释适当的行以查看绘图行为。 我还包括了一行代码,用于线条图,其中颜色是明确定义的,并且图表完美运行。 我看到了几个类似的问题,但找不到这个问题的解决方案或确定我是否做错了什么基本的事情。 谢谢你的帮助。

# bokeh version 0.12.5
# run in terminal with: python -m bokeh serve --show line_plot_color.py

from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import Figure
from bokeh.layouts import row

source = ColumnDataSource(data = dict(color = ['green','green','green'], xs = [1,2,3], ys = [1,2,3]))
fig = Figure(plot_width=300, plot_height=300)

#r = fig.circle('xs','ys',source = source, size = 12, fill_color = 'color') # works as expected
r = fig.line('xs','ys',source = source, line_color = 'color') # fails to plot; no errors or warnings in terminal
#r = fig.line('xs','ys',source = source, line_color = 'green')  # works as expected

layout = row(fig)
curdoc().add_root(layout)
1个回答

3

首先,为了帮助您调试 bokeh 服务器,使用 Web 浏览器自带的开发者工具非常有用。开发者工具的控制台将包含有用的调试信息,就像您的示例一样。

其次,在查阅文档时,线条图形方法没有设置接收列数据源值进行着色。如果您想在单个图中绘制多条具有不同颜色的线条,则可以使用 multi_line 图形。要使用此图形,您需要修改数据源 xs 和 ys 以成为多行 multi_line 的每条线路的列表。以下是一个快速示例。

source2 = ColumnDataSource(data = dict(color = ['green','red'], xs = [[1, 2],[2, 4]], ys = [[1, 2],[2, 4]]))
r = fig.multi_line('xs','ys',source = source2, line_color = 'color') 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接