gpt4 book ai didi

python - 在 Matplotlib 中定义 GridSpec 的宽度/高度

转载 作者:行者123 更新时间:2023-12-01 01:19:30 25 4
gpt4 key购买 nike

我有一个简单的图来比较一些图像,如下所示:

fig = plt.figure(constrained_layout=True,figsize=(15,15))
gs = GridSpec(3,2, figure=fig)
axes = []

ax = fig.add_subplot(gs[0, 0])
ax.imshow(square, cmap='gray')
ax.set_title('Original')
axes.append(ax)

ax = fig.add_subplot(gs[0, 1])
im1 = ax.imshow(scaled_square_sobel, cmap='gray')
ax.set_title('Sobel')
axes.append(ax)

ax = fig.add_subplot(gs[1, 0])
im2 = ax.imshow(scaled_square_sobel_x, cmap='gray')
ax.set_title('Sobel X')
axes.append(ax)

ax = fig.add_subplot(gs[1, 1])
ax.imshow(scaled_square_sobel_y, cmap='gray')
ax.set_title('Sobel Y')
axes.append(ax)

ax = fig.add_subplot(gs[2,0:2])
fig.colorbar(im2, cax=ax, orientation='horizontal')
plt.suptitle('Comparacao Sobel');

看起来像这样

Weird colorbar

正如您所看到的,颜色条占据了整个绘图的高度,而不是一个漂亮而优雅的小高度。如何“强制”GridSpec 具有预定义的高度。

当然,我可以创建一个 (30,20) 网格规范并将每个图定义为更大的切片,但恕我直言,这也不优雅,而且似乎我正在使用 HTML 表格。

有什么想法可以改进上面的代码吗?

最佳答案

无需为颜色条创建网格规范:

fig, axs = plt.subplots(constrained_layout=True,figsize=(15,15))

# other axes...

ax = axs[1, 1]
im2 = ax.imshow(np.random.rand(10,10), cmap='gray')
ax.set_title('Sobel Y')

fig.colorbar(im2, ax=axs, orientation='horizontal')

关于python - 在 Matplotlib 中定义 GridSpec 的宽度/高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com