我编写了一个基于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")
问题是y轴不再对齐!我非常乐意提供任何建议,埃尔玛
您对新版式系统的最佳选择是设置一个通用的min_border_left
值,该值足以容纳任一轴。
p_bar1.min_border_left = 40
p_bar2.min_border_left = 40
您将不得不尝试找到最适合自己情况的价值。
旧的对齐方式是由于基于约束的复杂布局系统在原理上似乎是一种很好的方法,但实际上结果证明它是难以维持的不透明和复杂,并且在相对较低的阈值之后表现非常非常差(缓慢)布局大小。在替换之前,它可能是问题和投诉的最大来源。