问题描述
我正在尝试使用 hvplot 或全息视图反转堆叠条形图中图例项的顺序。在堆叠条形图中启用图例以与堆叠方式相反的顺序显示项目。人们会期望它们的顺序相同。
似乎在将全息图渲染为散景图后,无法使用 my_bokeh_plot.legend.items
访问各个图例项。我只得到一个图例项 [LegendItem(id='1374',...)]
。这意味着我无法使用 p.legend[0].items.reverse()
恢复图例项的顺序。我想这是因为 hvplot 和全息视图使用了一种 "groupby legends" 的散景。
这是一个 hvplot 示例:
import pandas as pd
import hvplot.pandas
from bokeh.plotting import show
import holoviews as hv
df = pd.DataFrame({
'Type': ['A','A','B','B'],'Fiscal Period': ['2019-01','2019-01','2019-02','2019-02'],'Request Type': ['S','D','S','D'],'values': range(1,9),})
layout = df.hvplot.bar(
x='Fiscal Period',y='values',by='Request Type',groupby='Type',stacked=True,cmap='Category20',legend='top_left',frame_width=200,).layout()
plotA = layout['A'].opts(title='Type: A')
my_bokeh_plot = hv.render(plotA,backend='bokeh')
my_bokeh_plot.legend[0].items.reverse()
show(my_bokeh_plot)
这是一张图片:
我目前发现的相关讨论:
https://github.com/bokeh/bokeh/issues/9135
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)