2

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

4

0 回答 0