向bokeh B添加自定义图例

2024-10-01 11:36:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有熊猫系列:

>>> etypes
0    6271
1    6379
2     399
3     110
4    4184
5    1987

我想用Bokeh绘制条形图:p = Bar(etypes)。但是对于legend,我只得到etypes索引号,我试图用这个字典解密:

^{pr2}$

通过将它传递给label参数:p = Bar(etypes, label=legend),但它不起作用。传递cd4也不起作用。在

有什么想法如何添加自定义传奇熊猫系列在博克条形图?在


Tags: 参数字典bokeh绘制barlabel传奇条形图
2条回答

2017年,bokeh.chartsAPI(包括Bar)被弃用并从Bokeh删除。它是未维护的和不受支持的,在这一点上不应以任何理由使用它。使用支持良好的bokeh.plottingAPI可以完成使用数据的图例条形图:

from bokeh.palettes import Spectral6
from bokeh.plotting import figure, show

types = ["type_%d" % (x+1) for x in range(6)]
values = [6271, 6379, 399, 110, 4184, 1987]

data=dict(types=types, values=values, color=Spectral6)

p = figure(x_range=types, y_range=(0, 8500), plot_height=250)
p.vbar(x='types', top='values', width=0.9, color='color', legend="types", source=data)

p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"
p.legend.location = "top_center"

show(p)

enter image description here

有关bokeh.plotting中对条形图和分类图的极大改进支持的更多信息,请参阅扩展用户指南Handling Categorical Data

*Bokeh项目维护人员注意:这个答案指的是一个过时和不推荐使用的API。有关使用现代且完全受支持的bokehapi创建条形图的信息,请参阅其他响应。在


将序列转换为数据帧,将图例添加为新列,然后在label的引号中引用该列名。例如,如果您将数据帧称为“etypes”,将数据列称为“values”,将图例列称为“legend”:

p = Bar(etypes, values='values', label='legend') 

如果绝对必须使用序列,可以将序列传递到数据对象中,然后将其传递给bokeh。例如:

^{pr2}$

相关问题 更多 >