散景如何为 multi_line 方法创建的图形添加图例?
Bokeh how to add legend to figure created by multi_line method?
我正在尝试为图形添加图例,其中包含由 multi_line 方法创建的两行。
示例:
p = figure(plot_width=300, plot_height=300)
p.multi_line(xs=[[4, 2, 5], [1, 3, 4]], ys=[[6, 5, 2], [6, 5, 7]], color=['blue','yellow'], legend="first")
在这种情况下,图例仅适用于第一行。将图例定义为列表时出现错误:
p.multi_line(xs=[[4, 2, 5], [1, 3, 4]], ys=[[6, 5, 2], [6, 5, 7]], color=['blue','yellow'], legend=["first","second"])
是否可以为多行添加图例?
维护者说明:PR #8218 将合并到 Bokeh 1.0,允许直接为多行和补丁创建图例,无需任何循环或使用单独的 line
来电。
multi_line
适用于概念上单一的事物,恰好有多个子组件。想一想德克萨斯州,这是合乎逻辑的事情,但它有几个不同的(且不相交的)多边形。您可能会使用 Patches
为 "Texas" 绘制所有多边形,但总体上您只需要一个图例。传说标记合乎逻辑的事物。如果你想将几行标记为逻辑上不同的东西,你将不得不用 p.line(..., legend_label="...")
单独绘制它们
维护者说明:PR #8218 将合并到 Bokeh 1.0,允许直接为多行和补丁创建图例,无需任何循环。
为了让它更快,当你有很多数据或大 table 等时,你可以做一个 for 循环:
1) 列出颜色和图例
您可以随时为您的颜色导入散景调色板
从 bokeh.palettes 导入“你的调色板”
检查此 link:bokeh.palets
colors_list = ['blue', 'yellow']
legends_list = ['first', 'second']
xs=[[4, 2, 5], [1, 3, 4]]
ys=[[6, 5, 2], [6, 5, 7]]
2) 你的身材
p = figure(plot_width=300, plot_height=300)
3) 通过上面的列表进行 for 循环并显示
for (colr, leg, x, y ) in zip(colors_list, legends_list, xs, ys):
my_plot = p.line(x, y, color= colr, legend= leg)
show(p)
在最近的版本中(我认为是从 0.12.15 开始),可以将图例添加到 multi_line 图中。您只需向数据源添加一个 'legend' 条目。以下是取自 Google 群组讨论论坛的示例:
data = {'xs': [np.arange(5) * 1, np.arange(5) * 2],
'ys': [np.ones(5) * 3, np.ones(5) * 4],
'labels': ['one', 'two']}
source = ColumnDataSource(data)
p = figure(width=600, height=300)
p.multi_line(xs='xs', ys='ys', legend='labels', source=source)
我正在尝试为图形添加图例,其中包含由 multi_line 方法创建的两行。 示例:
p = figure(plot_width=300, plot_height=300)
p.multi_line(xs=[[4, 2, 5], [1, 3, 4]], ys=[[6, 5, 2], [6, 5, 7]], color=['blue','yellow'], legend="first")
在这种情况下,图例仅适用于第一行。将图例定义为列表时出现错误:
p.multi_line(xs=[[4, 2, 5], [1, 3, 4]], ys=[[6, 5, 2], [6, 5, 7]], color=['blue','yellow'], legend=["first","second"])
是否可以为多行添加图例?
维护者说明:PR #8218 将合并到 Bokeh 1.0,允许直接为多行和补丁创建图例,无需任何循环或使用单独的 line
来电。
multi_line
适用于概念上单一的事物,恰好有多个子组件。想一想德克萨斯州,这是合乎逻辑的事情,但它有几个不同的(且不相交的)多边形。您可能会使用 Patches
为 "Texas" 绘制所有多边形,但总体上您只需要一个图例。传说标记合乎逻辑的事物。如果你想将几行标记为逻辑上不同的东西,你将不得不用 p.line(..., legend_label="...")
维护者说明:PR #8218 将合并到 Bokeh 1.0,允许直接为多行和补丁创建图例,无需任何循环。
为了让它更快,当你有很多数据或大 table 等时,你可以做一个 for 循环:
1) 列出颜色和图例
您可以随时为您的颜色导入散景调色板
从 bokeh.palettes 导入“你的调色板”
检查此 link:bokeh.palets
colors_list = ['blue', 'yellow']
legends_list = ['first', 'second']
xs=[[4, 2, 5], [1, 3, 4]]
ys=[[6, 5, 2], [6, 5, 7]]
2) 你的身材
p = figure(plot_width=300, plot_height=300)
3) 通过上面的列表进行 for 循环并显示
for (colr, leg, x, y ) in zip(colors_list, legends_list, xs, ys):
my_plot = p.line(x, y, color= colr, legend= leg)
show(p)
在最近的版本中(我认为是从 0.12.15 开始),可以将图例添加到 multi_line 图中。您只需向数据源添加一个 'legend' 条目。以下是取自 Google 群组讨论论坛的示例:
data = {'xs': [np.arange(5) * 1, np.arange(5) * 2],
'ys': [np.ones(5) * 3, np.ones(5) * 4],
'labels': ['one', 'two']}
source = ColumnDataSource(data)
p = figure(width=600, height=300)
p.multi_line(xs='xs', ys='ys', legend='labels', source=source)