如何更改 python 散景图例中标签的大小?
How do you change size of labels in the Bokeh legend in python?
我在同一张图中画了几条曲线(不同颜色),想加宽图例中相应的彩色线条,以便在投影到大屏幕上时更容易区分。
我可以很好地访问图例的属性,例如图例的标签文本字体大小:
p1.legend.label_text_font_size = "15pt"
其中 p1
是有问题的数字。问题是我不知道图例中 "coloured lines" 的术语是什么,遗憾的是文档中的 relevant section 是空的。
您可以在GitHub
上查看源代码
'label_text_font_size'
的唯一搜索结果在此文件中:-
bokeh/bokehjs/src/coffee/renderer/annotation/legend.coffee
并向下滚动到 Legend
class(撰写本文时的第 113 行),然后您可以看到 class 属性。目前他们是:-
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
}
.. none 其中脱颖而出成为您想要的 属性,因此可能无法更改它但您可能想玩一玩?
注意,我不认为所有属性都有设置器,因此您可能必须使用如下方式设置它们:p.legend.__setattr__('label_text_color', "#FF0000")
NB Bokeh 是用我没有经验的 CoffeeScript 编写的,所以这可能 所有 都没有用。
也许这会有所帮助:
http://docs.bokeh.org/en/0.10.0/docs/user_guide/styling.html#id4
应该有效的命令....只需调整您的尺寸:
p.legend.label_text_font_size = '30pt'
从 Bokeh 0.12.6 开始,这是不可能的。图例会自动使用与它们所代表的事物完全相同的视觉属性(例如颜色、大小宽度)。因此,要使图例中的线条更粗,您需要使线条本身更粗。
能够覆盖某些内容可能是一个合理的要求,我强烈建议您在 GitHub 上提出问题以讨论功能提案:
这是 glyph_height 和 glyph_width 属性。在散点图上对此进行了测试,默认情况下它们分别设置为 20 和 20。您可以在构建图例项时将它们变大:
legend = Legend(...,
glyph_height=30,
glyph_width=30,
...)
不幸的是,我尝试在图例构建完成后进行设置,但它似乎不起作用...不过我可能是错的。
编辑:此外,我正在使用 Bokeh 0.12.7
以下(由@ciornav 提议)在散景 0.13.0 中对我有用:
p.legend.label_text_font_size = '20pt'
如文档所述here。
请小心放置此代码的位置。当它是例如在 p.figure() 和 p.line() 语句之间,它不会生效,因为它似乎被覆盖了。
将代码放在创建所有工件之后,p.show() 或 p.save().
之前
在当前版本的 Bokeh(1.2) 中,您可以使用以下方法更改图例中的对象大小:
p.legend.glyph_height = #some int
p.legend.glyph_width = #some int
p.show()
确保在绘制完所有几何图形后更改图例属性。
我在同一张图中画了几条曲线(不同颜色),想加宽图例中相应的彩色线条,以便在投影到大屏幕上时更容易区分。
我可以很好地访问图例的属性,例如图例的标签文本字体大小:
p1.legend.label_text_font_size = "15pt"
其中 p1
是有问题的数字。问题是我不知道图例中 "coloured lines" 的术语是什么,遗憾的是文档中的 relevant section 是空的。
您可以在GitHub
上查看源代码'label_text_font_size'
的唯一搜索结果在此文件中:-
bokeh/bokehjs/src/coffee/renderer/annotation/legend.coffee
并向下滚动到 Legend
class(撰写本文时的第 113 行),然后您可以看到 class 属性。目前他们是:-
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
}
.. none 其中脱颖而出成为您想要的 属性,因此可能无法更改它但您可能想玩一玩?
注意,我不认为所有属性都有设置器,因此您可能必须使用如下方式设置它们:p.legend.__setattr__('label_text_color', "#FF0000")
NB Bokeh 是用我没有经验的 CoffeeScript 编写的,所以这可能 所有 都没有用。
也许这会有所帮助:
http://docs.bokeh.org/en/0.10.0/docs/user_guide/styling.html#id4
应该有效的命令....只需调整您的尺寸:
p.legend.label_text_font_size = '30pt'
从 Bokeh 0.12.6 开始,这是不可能的。图例会自动使用与它们所代表的事物完全相同的视觉属性(例如颜色、大小宽度)。因此,要使图例中的线条更粗,您需要使线条本身更粗。
能够覆盖某些内容可能是一个合理的要求,我强烈建议您在 GitHub 上提出问题以讨论功能提案:
这是 glyph_height 和 glyph_width 属性。在散点图上对此进行了测试,默认情况下它们分别设置为 20 和 20。您可以在构建图例项时将它们变大:
legend = Legend(...,
glyph_height=30,
glyph_width=30,
...)
不幸的是,我尝试在图例构建完成后进行设置,但它似乎不起作用...不过我可能是错的。
编辑:此外,我正在使用 Bokeh 0.12.7
以下(由@ciornav 提议)在散景 0.13.0 中对我有用:
p.legend.label_text_font_size = '20pt'
如文档所述here。
请小心放置此代码的位置。当它是例如在 p.figure() 和 p.line() 语句之间,它不会生效,因为它似乎被覆盖了。
将代码放在创建所有工件之后,p.show() 或 p.save().
之前在当前版本的 Bokeh(1.2) 中,您可以使用以下方法更改图例中的对象大小:
p.legend.glyph_height = #some int
p.legend.glyph_width = #some int
p.show()
确保在绘制完所有几何图形后更改图例属性。