在记号标签中插入换行符 [英] Inserting newlines in bokeh Tick Labels

查看:0
本文介绍了在记号标签中插入换行符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆