初学Bokeh:使用注释【13】跬步

发布时间 2023-10-18 20:06:45作者: ohfaint

初学Bokeh:使用注释【13】跬步

注释也是一种绘图中的可视化元素,为绘图添加注释可使绘图更易理解。

例如,方框注释就是一种常用的注释方式。我们可以利用方框注释来突出显示绘图的某些区域。要在绘图中添加方框注释,首先需要从 bokeh.models 中导入 BoxAnnotation 类:

from bokeh.models import BoxAnnotation

接下来,创建 BoxAnnotation 对象。如果没有对方框注释的初始位置进行设置,Bokeh 会自动将方框的尺寸扩展到绘图的边缘:

# 填充位置:上部20%,透明度:0.2,填充颜色:"#F0E442"
low_box = BoxAnnotation(top=20, fill_alpha=0.2, fill_color="#F0E442")
# 填充位置:上部20%到80%,透明度:0.2,填充颜色:"#009E73"
mid_box = BoxAnnotation(bottom=20, top=80, fill_alpha=0.2, fill_color="#009E73")
# 填充位置:上部80%到底部,透明度:0.2,填充颜色:"#F0E442"
high_box = BoxAnnotation(bottom=80, fill_alpha=0.2, fill_color="#F0E442")

最后,需要将 BoxAnnotation 对象使用 add_layout() 方法添加到现有图形中。

p.add_layout(low_box)
p.add_layout(mid_box)
p.add_layout(high_box)

完整代码如下:

import random

from bokeh.models import BoxAnnotation
from bokeh.plotting import figure, show

# generate some data (1-50 for x, random values for y)
x = list(range(0, 51))
y = random.sample(range(0, 100), 51)

# create new plot
p = figure(title="Box annotation example")

# add line renderer
line = p.line(x, y, line_color="#000000", line_width=2)

# add box annotations
low_box = BoxAnnotation(top=20, fill_alpha=0.2, fill_color="#F0E442")
mid_box = BoxAnnotation(bottom=20, top=80, fill_alpha=0.2, fill_color="#009E73")
high_box = BoxAnnotation(bottom=80, fill_alpha=0.2, fill_color="#F0E442")

# add boxes to existing figure
p.add_layout(low_box)
p.add_layout(mid_box)
p.add_layout(high_box)

# show the results
show(p)

fig1