在 Bokeh 中更改双轴标签文本的颜色

Changing the Color of Twin Axis Label Text in Bokeh

在标准的散景线图上,y轴标签文本的颜色可以用代码设置:

graph.yaxis.major_label_text_color = "#1F77B4"

可以向图表添加第二个 y 轴,从而产生双轴。以下代码将实现此目的:

graph.extra_y_ranges = {"range2": bokeh.models.Range1d(start = 0, end = 500)}
graph.add_layout(bokeh.models.LinearAxis(y_range_name = "range2"), "left")

但是,不清楚如何更改第二个 y 轴的标签文本的颜色。第一个代码块没有指定哪个 y 轴,但它会影响原始的 y 轴。如果每组标签的颜色与它们测量的线条相对应,那就太好了。新y轴的颜色怎么改?

p.xaxisp.yaxis等属性实际上是列表:

In [41]: p.add_layout(LinearAxis(y_range_name="foo"), 'left')

In [42]: p.yaxis
Out[42]:
[LinearAxis(id='c9d9c010-3698-4906-83b0-e8a9a244e4be', ...),
 LinearAxis(id='c991b6b3-e85a-4033-b028-4e2ee134df1c', ...)]

但是,因为更常见的情况是只有一个轴,所以可以这样做:

p.yaxis.major_label_text_color = "red"

为了方便。这将为存在的 所有 y 轴设置 属性 值。但是如果你只想改变一个,而不是全部,你总是可以通过索引来明确:

p.yaxis[1].major_label_text_color = "red"  

作为参考,这些都记录在 User's Guide chapter Styling Visual Attributes

提醒一下,在 p.add_layout(LinearAxis()) 创建对象后,需要应用任何附加轴的样式。

graph.add_layout(
    bokeh.models.LinearAxis(y_range_name='range2', axis_label_text_color='green'),
    'left'
)