在记号标签中插入换行符 [英] Inserting newlines in bokeh Tick Labels
本文介绍了在记号标签中插入换行符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在Bokeh中创建跨多行格式化的记号标签。 在常规的Python中以这种方式设置格式很简单,例如
'{}
{}'.format('Category', 'Percentage')
将打印
Percentage
在我的代码中,我这样做是为了创建我的绘图数据:
ds = OrderedDict(sorted(subdict.items(), key=lambda v: v[1], reverse=True))
ks = [i+', {:}% '.format(str(round(j/sum(ds.values())*100, None))) for i, j in ds.items()]
data = {'kz': ks, 'vals':list(ds.values())}
source = ColumnDataSource(data=data)
如果我在上面代码中的Format()语句中插入换行符(例如',
{:}%'
),bokeh会忽略它。
bokeh.models.PrintfTickFormatter似乎没有提供换行参数,
和
bokeh.models.CategoricalTickFormatter按字面意思不执行任何操作(方法为‘PASS’)
隐藏在bokeh文档中
https://docs.bokeh.org/en/latest/docs/reference/models/formatters.html
forDatetimeTickFormatter
是语句:
%n 换行符。Bokeh文本当前不支持换行符。
我只能假设这适用于bokeh中的所有和任何文本。
是否有人可以确认、更正或提供解决办法?
在我的用例中,图表仅作为PNG导出。推荐答案
自Bokeh2.3起,多行刻度线标签仅适用于类别因素:
from bokeh.plotting import figure, show
factors = [
"a very long label
that needs a break",
"a short label",
]
x = [50, 40]
p = figure(y_range=factors)
p.circle(x, factors, size=25, fill_color="orange", line_color="green", line_width=3)
show(p)
这篇关于在记号标签中插入换行符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文