在bokeh刻度标签中插入换行符

时间:2018-09-07 09:06:46

标签: python bokeh

我想在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。

1 个答案:

答案 0 :(得分:1)

从Bokeh 1.4开始,多行刻度标签仍然是一项公开功能要求。您可以关注GitHub问题:

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

最近有一个概念验证的PR,因此我们希望很快将其包含在将来的版本中。