我想在Bokeh中创建刻度标签,这些标签以多行格式设置。 在常规Python中以这种方式进行格式化很简单,例如
'{} \n{}'.format('Category', 'Percentage')
将打印
Category
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)
如果我在上述代码(例如', \n {:}%'
)的format()语句中插入换行符,则bokeh会将其换行。
bokeh.models.PrintfTickFormatter 似乎没有提供换行符
和
bokeh.models.CategoricalTickFormatter 实际上不执行任何操作(方法为“通过”)
隐藏在bokeh文档中 (https://bokeh.pydata.org/en/latest/docs/reference/models/formatters.html)
(对于DatetimeTickFormatter)是以下语句:
%n 换行符。散景文字目前不支持换行符。
我只能假定这适用于bokeh中的所有文本。
任何人都可以确认,纠正或提供解决方法吗?
nb在我的用例中,图表仅导出为png。
答案 0 :(得分:1)
从Bokeh 1.4开始,多行刻度标签仍然是一项公开功能要求。您可以关注GitHub问题:
https://github.com/bokeh/bokeh/issues/8169
最近有一个概念验证的PR,因此我们希望很快将其包含在将来的版本中。