标签未出现在带有组的python bokeh条形图中

问题描述 投票:0回答:1

我想添加标签,其值在小节上方,如下所示:How to add data labels to a bar chart in Bokeh?,但不知道如何做。我的代码与其他示例看起来不同,代码可以正常工作,但也许不是正确的方法。

我的代码:

from bokeh.io import export_png
from bokeh.io import output_file, show
from bokeh.palettes import Spectral5
from bokeh.plotting import figure
from bokeh.sampledata.autompg import autompg_clean as df
from bokeh.transform import factor_cmap
from bokeh.models import ColumnDataSource, ranges, LabelSet, Label
import pandas as pd

d = {'lvl': ["lvl1", "lvl2", "lvl2", "lvl3"],
   'feature': ["test1", "test2","test3","test4"],
     'count': ["5", "20","8", "90"]}
dfn = pd.DataFrame(data=d)
sourceframe = ColumnDataSource(data=dfn)

groupn = dfn.groupby(by=['lvl', 'feature'])
index_cmapn = factor_cmap('lvl_feature', palette=Spectral5, factors=sorted(dfn.lvl.unique()), end=1)


pn = figure(plot_width=800, plot_height=300, title="Count",x_range=groupn, toolbar_location=None)

labels = LabelSet(x='feature', y='count', text='count', level='glyph',x_offset=0, y_offset=5, source=sourceframe, render_mode='canvas',)


pn.vbar(x='lvl_feature', top="count_top" ,width=1, source=groupn,line_color="white", fill_color=index_cmapn, )

pn.y_range.start = 0
pn.x_range.range_padding = 0.05
pn.xgrid.grid_line_color = None
pn.xaxis.axis_label = "levels"
pn.xaxis.major_label_orientation = 1.2
pn.outline_line_color = None
pn.add_layout(labels)
export_png(pn, filename="color.png")

我认为这与我的dfn.groupby(by=['lvl', 'feature'])和(可能是错误的)sourceframe = ColumnDataSource(data=dfn)有关。

此刻的情节:enter image description here

python bokeh
1个回答
0
投票

您可以像这样在初始字典中添加组名:

d = {'lvl': ["lvl1", "lvl2", "lvl2", "lvl3"],
     'feature': ["test1", "test2","test3","test4"],
     'count': ["5", "20","8", "90"],
     'groups': [('lvl1', 'test1'), ('lvl2', 'test2'), ('lvl2', 'test3'), ('lvl3', 'test4')]}

然后使用组的x值调用LabelSet。

labels = LabelSet(x='groups', y='count', text='count', level='glyph',x_offset=20, y_offset=0, source=sourceframe, render_mode='canvas',)

以这种方式显示标签。请注意,我用偏移量播放了一下以检查是否是问题所在,您可以手动修复它。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.