You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除Holoviews BoxWhisker图中的重复图例?

如何去除Holoviews BoxWhisker图中的重复图例?

这个问题我之前也碰到过!其实是因为你设置box_color='name'的时候,Holoviews的BoxWhisker组件会为箱线图的每个统计元素(比如箱体、误差须、中位数线等)都生成对应的图例条目,最终就出现了重复的情况。

给你两个简单的解决办法,都能快速去掉重复图例:

方法一:统一设置颜色并指定图例分组

把box_color='name'替换成color='name',同时添加legend_groups='name'参数,这样Holoviews就只会为每个分类生成一个图例项:

import holoviews as hv
import panel as pn
import numpy as np
import pandas as pd

hv.extension('bokeh')
pn.extension()

np.random.seed(42)  
values = np.random.uniform(10, 20, size=100)
names = np.random.choice(['Name_A', 'Name_B', 'Name_C'], size=100, replace=True)

df = pd.DataFrame({'value': values, 'name': names})

boxplot = hv.BoxWhisker(df, kdims='name', vdims='value').opts(
    color='name',  # 替换box_color为color
    cmap='Set1',
    legend_groups='name',  # 指定图例分组
    show_legend=True
)

box_plot_pane = pn.pane.HoloViews(boxplot)
box_plot_pane.show()

方法二:单独设置填充色和线色

如果你只想给箱体设置颜色,保持须和其他元素的默认样式,可以用fill_color='name'和line_color='name',同时通过legend_groups指定分组,避免重复图例:

boxplot = hv.BoxWhisker(df, kdims='name', vdims='value').opts(
    fill_color='name',
    line_color='name',
    cmap='Set1',
    legend_groups='name',
    show_legend=True
)

这样修改后,图例就只会显示每个name分类对应的一个条目,不会再重复啦。

备注:内容来源于stack exchange,提问作者Freya W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 12:52:58