如何更改python中Bokeh图例中标签的大小?

air*_*das 7 python size line legend bokeh

我在同一图中绘制了几条(不同颜色的)曲线,并希望加宽图例中相应的彩色线条,以便在投影到大屏幕时更容易区分.

我可以访问图例的属性,例如图例的标签文字字体大小:

p1.legend.label_text_font_size = "15pt"
Run Code Online (Sandbox Code Playgroud)

p1这个数字在哪里?问题是我不知道图例中"彩色线条"的术语是什么,遗憾的是文档中的相关部分是空的.

jac*_*ury 6

您可以在GitHub上查看源代码

唯一的搜索'label_text_font_size'是在此文件中: -

 bokeh/bokehjs/src/coffee/renderer/annotation/legend.coffee
Run Code Online (Sandbox Code Playgroud)

并向下滚动到Legend该类(编写本文时的第113行),然后您可以看到类属性.目前它们是: -

 display_defaults: ->
return _.extend {}, super(), {
level: 'overlay'
border_line_color: 'black'
border_line_width: 1
border_line_alpha: 1.0
border_line_join: 'miter'
border_line_cap: 'butt'
border_line_dash: []
border_line_dash_offset: 0
label_standoff: 15
label_text_font: "helvetica"
label_text_font_size: "10pt"
label_text_font_style: "normal"
label_text_color: "#444444"
label_text_alpha: 1.0
label_text_align: "left"
label_text_baseline: "middle"
glyph_height: 20
glyph_width: 20
label_height: 20
label_width: 50
legend_padding: 10
legend_spacing: 3
orientation: "top_right"
datapoint: null
}
Run Code Online (Sandbox Code Playgroud)

..他们中没有一个能够成为你想要的财产,因此可能无法改变它,但你可能想玩一玩?

NB我不认为所有属性都有setter所以你可能不得不使用这样的东西设置它们: p.legend.__setattr__('label_text_color', "#FF0000")

NB Bokeh是用CoffeeScript编写的,我没有经验,所以这可能都是无用的.


小智 6

以下(由@ciornav提议)在bokeh 0.13.0中对我有效:

p.legend.label_text_font_size = '20pt'
Run Code Online (Sandbox Code Playgroud)

这里所记载。

但是,请注意将代码放在何处。例如,当它在您的p.figure()和p.line()语句之间时,它似乎会被覆盖,因此不会生效。

将代码放置在所有工件创建之后,p.show()或p.save()之前