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

时间:2015-03-18 18:36:41

标签: python size line legend bokeh

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

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

p1.legend.label_text_font_size = "15pt"

其中p1是有问题的数字。问题是我不知道图例中“彩色线条”的术语是什么,遗憾的是文档中的relevant section是空的。

6 个答案:

答案 0 :(得分:6)

您可以在GitHub上查看源代码

'label_text_font_size'的唯一搜索位于此文件中: -

 bokeh/bokehjs/src/coffee/renderer/annotation/legend.coffee

并向下滚动到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
}

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

NB我不认为所有属性都有设置器,因此您可能需要使用以下内容设置它们:p.legend.__setattr__('label_text_color', "#FF0000")

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

答案 1 :(得分:5)

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

p.legend.label_text_font_size = '20pt'

here所述。

请谨慎放置此代码。当它是在您的p.figure()和p.line()语句之间,它似乎会被覆盖,因此不会生效。

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

答案 2 :(得分:2)

glyph_height glyph_width 属性。在散点图上测试它们,默认情况下它们分别设置为20和20。在构建图例项时,可以使它们更大:

html

不幸的是,我在传说已经建成之后尝试设置它并且它似乎不起作用......但我可能错了。

编辑:另外,我使用的是Bokeh 0.12.7

答案 3 :(得分:1)

截至Bokeh 0.12.6,这是不可能的。图例自动使用与其所代表的事物完全相同的视觉属性(例如颜色,大小宽度)。因此,为了使图例中的线更粗,您需要使线本身更厚。

能够覆盖事物可能是一个合理的要求,我敦促你在GitHub上提出一个问题来讨论功能提议:

https://github.com/bokeh/bokeh/issues

答案 4 :(得分:0)

也许这可能会有所帮助:

http://bokeh.pydata.org/en/0.10.0/docs/user_guide/styling.html#id4

命令应该工作....只是调整你的大小:

p.legend.label_text_font_size =' 30pt'

答案 5 :(得分:0)

在当前版本的Bokeh(1.2)中,可以使用以下命令在图例中更改对象大小:

p.legend.glyph_height = #some int
p.legend.glyph_width = #some int
p.show()

确保绘制所有几何图形后更改图例属性。