color_mapper 基于分类数据隐藏散景字形
Hiding Bokeh glyphs based on categorical data with color_mapper
目前我找到了一种使用 color_mapper
和 legend_field
变量绘制分类数据的方法。我的数据如下所示:
df_plot
x y category
0 91.587097 -3.761215 cat1
1 169.068802 -11.131036 cat2
2 64.201126 3.333073 cat1
3 78.828232 6.910666 cat3
4 51.033684 -6.213269 cat1
.. ... ... ...
160 -24.078451 5.34703 cat1
161 104.982063 -1.674969 cat2
162 55.020164 -1.134725 cat3
163 233.567902 2.50064 cat2
164 83.931938 7.92193 cat1
我想隐藏基于分类图例的字形,如 bokehs website 中的示例:
source = ColumnDataSource(data=df)
category = ['cat1', 'cat2', 'cat3']
color_mapper = factor_cmap('category', palette=Category10_3, factors=category)
plot = figure(x_range=(-x_range, x_range),
y_range=(y_range[0], y_range[1]),
title=title,
width=500,
height=800,
tools=TOOLS
)
plot.circle(x='x',
y='y',
size=8,
source=source,
color=color_mapper,
legend_field='category'
)
plot.legend.click_policy='hide'
我得到以下结果:
现在我只能一次隐藏所有类别。有没有办法用 color_mapper 做到这一点,还是我必须事先拆分数据并遍历每个类别?
您可以使用 CDSView、BooleanFilter 来过滤数据。 here 是个小例子。 link 与 on_change 或 js 发生变化。
目前我找到了一种使用 color_mapper
和 legend_field
变量绘制分类数据的方法。我的数据如下所示:
df_plot
x y category
0 91.587097 -3.761215 cat1
1 169.068802 -11.131036 cat2
2 64.201126 3.333073 cat1
3 78.828232 6.910666 cat3
4 51.033684 -6.213269 cat1
.. ... ... ...
160 -24.078451 5.34703 cat1
161 104.982063 -1.674969 cat2
162 55.020164 -1.134725 cat3
163 233.567902 2.50064 cat2
164 83.931938 7.92193 cat1
我想隐藏基于分类图例的字形,如 bokehs website 中的示例:
source = ColumnDataSource(data=df)
category = ['cat1', 'cat2', 'cat3']
color_mapper = factor_cmap('category', palette=Category10_3, factors=category)
plot = figure(x_range=(-x_range, x_range),
y_range=(y_range[0], y_range[1]),
title=title,
width=500,
height=800,
tools=TOOLS
)
plot.circle(x='x',
y='y',
size=8,
source=source,
color=color_mapper,
legend_field='category'
)
plot.legend.click_policy='hide'
我得到以下结果:
现在我只能一次隐藏所有类别。有没有办法用 color_mapper 做到这一点,还是我必须事先拆分数据并遍历每个类别?
您可以使用 CDSView、BooleanFilter 来过滤数据。 here 是个小例子。 link 与 on_change 或 js 发生变化。