我试图使网格成为图像和折线图,但是第一个图像折线是水平拉伸的,这显然是因为第二行中的折线图的y轴标签占用了宽度。
有什么办法可以防止这种情况?
# create an array of RGBA data
N = 20
img = np.empty((N, N), dtype=np.uint32)
view = img.view(dtype=np.uint8).reshape((N, N, 4))
for i in range(N):
for j in range(N):
view[i, j, 0] = int(255 * i / N)
view[i, j, 1] = 158
view[i, j, 2] = int(255 * j / N)
view[i, j, 3] = 255
#output_file("grid.html", )
p = figure(plot_width=200, plot_height=200, x_range=(0, 10), y_range=(0, 10))
p.image_rgba(image=[img], x=[0], y=[0], dw=[10], dh=[10])
p2 = figure(plot_width=200, plot_height=200, x_range=(0, 10), y_range=(0, 10))
p2.image_rgba(image=[img], x=[0], y=[0], dw=[10], dh=[10])
p3 = figure(plot_width=400, plot_height=200)
p3.line([1, 2, 3, 4, 5], np.array([6, 7, 2, 4, 5])*10000, line_width=2)
p3.xaxis.axis_label = f'Wavelength'
p3.yaxis.axis_label = f'Flux'
l = gridplot([
[p, p2],
[p3]
], sizing_mode='fixed')
show(l)
答案 0 :(得分:1)
从Bokeh 1.0.2开始,没有直接的方法可以控制内部框架的尺寸。有一个ongoing WIP Pull Request用于添加此功能,而其他功能则将在1.1版本中发布。
同时,您可以:
plot_width
和plot_height
控制画布的整体宽度/高度min_border
,min_border_left
等来控制内部周围的最小填充。因此,如果控制刻度(并考虑任何颜色条大小等),并设置适当的min_border值(不会超过该值),则可以有效地间接控制框架尺寸。我注意到这远非理想,并期待版图PR的到来。