使用 hvplot/holoviews 在堆积条形图中反转图例顺序

问题描述

我正在尝试使用 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)

这是一张图片

enter image description here

我目前发现的相关讨论:
https://github.com/bokeh/bokeh/issues/9135

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)