Python Bokeh上的重复图例标签

Python Bokeh上的重复图例标签,python,bokeh,Python,Bokeh,我试图用bokeh库中的甜甜圈图显示定性数据。我有两个数据集共享一些数据标签,我想有一个统一的图例来收集这两个标签 我已经设法只为一个情节显示图例,或者为两个情节都显示图例,但有重复的项目。但是,我没有找到一种方法来拥有唯一的条目。以下是显示我的问题的示例代码: 从数学导入pi 作为pd进口熊猫 来自bokeh.io导入展 从bokeh.plotting导入图形 从bokeh.transform导入cumsum 从bokeh.paletes导入集合3 #创建假数据 df=pd.DataFrame

我试图用
bokeh
库中的甜甜圈图显示定性数据。我有两个数据集共享一些数据标签,我想有一个统一的图例来收集这两个标签

我已经设法只为一个情节显示图例,或者为两个情节都显示图例,但有重复的项目。但是,我没有找到一种方法来拥有唯一的条目。以下是显示我的问题的示例代码:

从数学导入pi
作为pd进口熊猫
来自bokeh.io导入展
从bokeh.plotting导入图形
从bokeh.transform导入cumsum
从bokeh.paletes导入集合3
#创建假数据
df=pd.DataFrame(
{'label':['X{}'。范围(0,4)中i的格式(i)]+['X{}'。范围(2,8)]中i的格式(i),
“角度”:[2*pi/4]*4+[2*pi/6]*6,
“组”:[1]*4+[2]*6})
#设置颜色
unique_labels=df.label.unique()
颜色映射=pd.系列(dict(zip(唯一标签),Set3[len(唯一标签)])
df['color']=颜色映射.loc[df.label].值
#画两个同心的甜甜圈
p=图(title='Test',tools='hover',tooltips=“@label”)
p、 环形楔块(震源=df[df.组==1],x=0,y=1,内半径=0.5,外半径=0.6,
开始角度=总和(“角度”,包括零=真),结束角度=总和(“角度”),
行\u color=“白色”,填充\u color='color',图例\u group='label')
p、 环形楔块(震源=df[df.组==2],x=0,y=1,内半径=0.3,外半径=0.4,
开始角度=总和(“角度”,包括零=真),结束角度=总和(“角度”),
行\u color=“白色”,填充\u color='color',图例\u group='label')
表演(p)
最后,我得到以下结果:

有办法解决吗?
我发现了其他相关问题(即matplotlib),但不适用于bokeh。

我认为这会起作用:

legend_tmp = {x.label['value']: x for x in p.legend.items}
p.legend.items.clear()
p.legend.items.extend(legend_tmp.values())
当它为绘图创建图例时,它添加了两个
angular\u wedge
的所有项目,但并没有以您可能期望的方式消除重复,因为图例成员本身是相当复杂的对象(这意味着它们不仅仅通过标签的值来识别)