我正在尝试使用 hvplot 或 holoviews 在堆积条形图中反转图例项的顺序。启用堆叠条形图中的图例以与堆叠方式相反的顺序显示项目。人们会期望它们的顺序相同。
似乎在将全息图绘制为散景图后,无法使用my_bokeh_plot.legend.items
. 我只得到一个图例项[LegendItem(id='1374', ...)]
。这意味着我无法使用p.legend[0].items.reverse()
. 我想这是因为 hvplot 和 holoviews 使用了散景的“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', 'A', 'A', 'B', 'B', 'B', 'B'],
'Fiscal Period': ['2019-01', '2019-01', '2019-02', '2019-02', '2019-01', '2019-01', '2019-02', '2019-02'],
'Request Type': ['S', 'D', 'S', 'D', '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