如何去除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
相关产品推荐
相关产品推荐

