gpt4 book ai didi

python - Matplotlib gridspec - 将另一个三次图放置在几个子图旁边

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

我正在尝试弄清楚如何将另一个立方体形状的图放置在三个子图的右侧

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
gs1 = gridspec.GridSpec(3,2)
ax1 = plt.subplot(gs1[0, :])
ax2 = plt.subplot(gs1[1, :],sharex=ax1)
ax3 = plt.subplot(gs1[2, :],sharex=ax1)
plt.setp(ax1.get_xticklabels(), visible=False)
plt.setp(ax2.get_xticklabels(), visible=False)
plt.show()

enter image description here如何使用 gridspec 将另一个跨越三行的图放置在这些图旁边?

最佳答案

您已经通过将 gridspec 分割为两列来定义正确的拆分。指定左轴使用第一列(请参阅下面的更改),而应该为“立方”(长宽比 1)的轴使用网格规范的右列。

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
gs1 = gridspec.GridSpec(3,2)
ax1 = plt.subplot(gs1[0, 0])
ax2 = plt.subplot(gs1[1, 0],sharex=ax1)
ax3 = plt.subplot(gs1[2, 0],sharex=ax1)
ax4 = plt.subplot(gs1[:, 1]) # NEW
ax4.set_aspect('equal', adjustable='box') # NEW
plt.setp(ax1.get_xticklabels(), visible=False)
plt.setp(ax2.get_xticklabels(), visible=False)
plt.show()

gridspec with two columns

或者,您可以定义第二个网格规范并更新每个网格规范的(相对)定位,如下所示:

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
gs1 = gridspec.GridSpec(3,2)
gs1.update(left=0.05, right=0.48, wspace=0.05)
ax1 = plt.subplot(gs1[0, :])
ax2 = plt.subplot(gs1[1, :],sharex=ax1)
ax3 = plt.subplot(gs1[2, :],sharex=ax1)

gs2 = gridspec.GridSpec(1, 1)
gs2.update(left=0.55, right=0.98, hspace=0.05)
ax4 = plt.subplot(gs2[0,0])
#ax4.set_aspect('equal', adjustable='box')
plt.setp(ax1.get_xticklabels(), visible=False)
plt.setp(ax2.get_xticklabels(), visible=False)
plt.show()

我对代码进行了注释,以在 ax4 中获得相等的宽高比,以突出显示默认情况下,它会填充整个可用空间。

alternative gridspec

关于python - Matplotlib gridspec - 将另一个三次图放置在几个子图旁边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40830346/

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