散景 vbar 图中的条件着色

Conditional coloring in bokeh vbar plots

尝试用散景制作一个 vbar 图。当值超过预设数字时,想为填充颜色设置一个条件。比方说,大于 5 时为红色,否则为紫色。这对散景可行吗?

如有任何演示,将不胜感激。我的数据存储在 pandas 数据框中。

您可以在 DataFrame 中创建一个名为 color 的列,并将此数据传递给函数 vbar() 中的关键字 color,使用 DataFrame 作为 source

最小示例

import pandas as pd
import numpy as np

from bokeh.plotting import figure, show, output_notebook
output_notebook()

df = pd.DataFrame({'a':[1,2,3,4,5,6]})
df['color'] = np.where(df['a'].le(5), 'purple','red')

p = figure()
p.vbar('index', top='a', width=0.75, fill_alpha=0.5, color='color', source=df)
show(p)

输出