BokehJS 标题文本对齐

BokehJS Title Text Alignment

我正在使用 BokehJS 库进行开发,需要一些帮助,因为该库的 JS 端文档非常薄。

在python中,您可以通过以下命令更改文本对齐方式,

p = figure(title='Title',plot_width=500, plot_height=200, tools='')
p.title.text_align = 'center'

在 JS 中没有可比较的属性。

var plt = Bokeh.Plotting;
var p = plt.figure({ title: "Title",height: 300,width: 300,tools: ''});
p.title.<???>

我认为锚函数负责设置对齐,但我需要帮助。

Python Bokeh 模型与相应的 BokehJS 模型之间保持严格的 1-1 对应关系(这在测试中保持)。所以 Python Reference Guide 对于 BokehJS 来说也不是一个糟糕的参考。

但是,在这种特殊情况下,text_align 并不需要。相反,你应该使用:

p.title.align = 'center'

无趣的原因是 text_align 对 HTML canvas 有特定含义,这与对齐标题不太对应。


顺便说一句,BokehJS 曾经纯粹是一个隐藏的实现细节,这就是它的文档很薄的原因。我们绝对有兴趣将它作为一个独立的 JS 库进行更好的开发,包括改进文档,但这需要 people-time,目前传播得非常少。如果您有兴趣帮助改进 BokehJS,请联系 GitHub or the Discourse

好的,我通过导航 chrome 开发人员工具中的属性找到了解决方案。

var plt = Bokeh.Plotting;
var p = plt.figure({ title: "Title",height: 300,width: 300,tools: ''});
p.attributes["above"][0]['align']='center';

上面的代码根据我的需要将标题文本居中。在上面的例子中,"above" 位置的 plot 属性是标题。