如何直接设置 Bokeh 绘图 X 轴的宽度

3
我希望定义我的bokeh图的宽度,不包括 y轴标签。
我正在创建一个gridplot(),子图具有不同的xrange,但它们具有相同的比例是很重要的。
我可以根据它们的xrange来定义宽度,但这并不完全有效,因为y轴标签的大小会稍微影响它。
我有一个解决方法,即估计ylabel在像素中的大小,然后将其添加到宽度中,但这远非理想的解决方案。

enter image description here

正如您所看到的,底部面板略微拉伸。


1
甚至计算y轴标签宽度的方法也会非常有用! - distracted-biologist
1个回答

1

没有直接的方法来做到这一点。您可以直接控制:

  • plot_widthplot_height。这些是整个HTML画布(包括轴和标题等)的(像素)尺寸。

  • min_border(以及特定的min_border_left等)属性。它们允许您为中心绘图区域周围的区域提供最小像素大小(即轴和标题所在的位置)。

因此,如果您想对中心绘图区域进行更精细的控制,您可以控制这两个属性来实现。例如,如果您使用plot_width为600创建两个图,并给两个图都设置min_border_left为80,则只要两个图的轴和标签等适合80个像素内,中央绘图区域的宽度将相同,为520px。


我目前在这方面遇到了困难。由于很难推断中心绘图区域的大小,因此 Bokeh 图形不太具有组合性。根据上面的评论,逐步改进的方法是能够计算(轴+标签)的宽度,或将其设置为某个固定大小(内容被剪裁)。 - Roly
1
轴和标签的宽度并不是由任何Python代码计算的,它只在浏览器中的JavaScript代码中计算。因此,原则上第一种选项是不可能的,除非在Bokeh服务器情况下(即使是这样,在事后也只能进行追溯)。固定大小并进行裁剪可能是可行的,但从未有人要求过这个功能,因此从未被考虑过。请随时打开一个github问题来提出它。 - bigreddot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接