如何重新获得与散景版本> = 1.1对齐的布局堆叠散景图中的y轴

问题描述 投票:0回答:1

我编写了一个基于bokeh的程序包,以绘制带有所需水平和垂直注释条的聚类热图。

在bokeh 1.1版之前,一切正常。从bokeh 1.1版开始,水平注释栏不再正确对齐。这是我的包裹的主要问题。

是否有办法使bokeh的最新版本恢复到1.1版之前的行为? (最新版本是bokeh 1.4。)

这是显示我的意思的代码示例:

# libraries
from bokeh.layouts import layout
from bokeh.plotting import figure
from bokeh.io import show, export_png

# gerenate bar one
fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
counts = [5, 3, 4, 2, 4, 6]
p_bar1 = figure(x_range=fruits, y_range=(0,9), title="fruits", plot_height=128)
p_bar1.vbar(x=fruits, top=counts, width=1)

# gerenate bar two
fruits = ['APPLES', 'PEARS', 'NECTARINES', 'PLUMES', 'GRAPES', 'STRAWBERRIES']
counts = [5000, 3000, 4000, 2000, 4000, 6000]
p_bar2 = figure(x_range=fruits, y_range=(0,9000), title="FRUITS", plot_height=128)
p_bar2.vbar(x=fruits, top=counts, width=1)

# stack plots
o_layout = layout([[p_bar1],[p_bar2]])
show(o_layout)
#export_png(o_layout, filename="bokeh_plot.png")

使用bokeh 1.0.4的输出如下所示:enter image description here

With bokeh> = 1.1输出如下:enter image description here

问题是y轴不再对齐!我非常乐意提供任何建议,埃尔玛

bokeh
1个回答
0
投票

您对新版式系统的最佳选择是设置一个通用的min_border_left值,该值足以容纳任一轴。

p_bar1.min_border_left = 40
p_bar2.min_border_left = 40

您将不得不尝试找到最适合自己情况的价值。

旧的对齐方式是由于基于约束的复杂布局系统在原理上似乎是一种很好的方法,但实际上结果证明它是难以维持的不透明和复杂,并且在相对较低的阈值之后表现非常非常差(缓慢)布局大小。在替换之前,它可能是问题和投诉的最大来源。

© www.soinside.com 2019 - 2024. All rights reserved.