问题描述
我在散景中更新 legend_groups 时遇到问题:
我的数据基于四列:x 值、y 值、分类、地理。我在 bokeh 中创建了一个散点图,所有散点都来自相同的 x 和 y 列。我根据分类列将散点分为两类(0 和 1)。然后我使用 factor_mark 和 factor_color 以不同的颜色(橙色和蓝色)显示两个类别。
我进一步使用了 legend_group 来创建散点图的图例。这很好用。图例如下所示:
0 橙 1 蓝
renderer_scatter = plot.scatter(
x='x',y='y',source=data_provider,view=data_provider.geography,size=5,fill_alpha=0.4,marker=factor_mark('x',['hex','triangle'],'categorization'),color=factor_cmap('x','Category10_3',legend_group='categorization')
我进一步在仪表板中添加了一个下拉菜单,用于根据地理位置指定我的数据视图。
不幸的是,当我更改视图时,legend_group 没有适当更新。根据地理位置,它看起来像这样:
0 蓝 1 蓝
或
0 橙 1 橙
或
0 橙色 1
等等。
散点图本身更新得很好。
您知道可能是什么问题吗? 非常感谢提前!
解决方法
legend_group
是在 Python 中创建图形时预先计算图例条目一次的一种简写方式。如果您需要对动态数据变化做出反应的东西,那么您需要使用 legend_field
,它是在浏览器的“JavaScript 端”计算的。 (或者,您可以完全手动管理 LegendItem
对象,随着数据的变化添加和删除。)