如何在matplotlib中指定每个子图的大小?

时间:2018-09-16 13:38:57

标签: python python-3.x matplotlib subplot

我知道在matplotlib中获得大小不同的子图的几种方法。但是,我想或多或少(最好是更多)坚持使用此代码部分(source):

import matplotlib.pyplot as plt
import numpy as np

x1 = np.linspace(-1, 1, 50)

_, ax = plt.subplots(nrows=2, ncols=2, figsize=(24,8))
ax[0][0].set_title('title of first')
ax[0][0].plot(x1) # plot for first subplot
ax[0][1].set_title('title of second')
ax[0][1].plot(x1) # plot for second subplot
ax[1][0].set_title('title of first')
ax[1][0].plot(x1) # plot for first subplot
ax[1][1].set_title('title of second')
ax[1][1].plot(x1) # plot for second subplot

这会产生4个漂亮的子图:

enter image description here

现在,我想使左列中的两个较小,最好是正方形图,而右列中的两个较大,而无需对上面的代码进行太多修改。


我可以制作这个:

enter image description here

使用以下代码:

import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(2, 2,width_ratios=[1, 2])

ax1 = plt.subplot(gs[0])
ax2 = plt.subplot(gs[1])
ax3 = plt.subplot(gs[2])
ax4 = plt.subplot(gs[3])

我正在寻找其他解决方案,欢迎提出建议。

0 个答案:

没有答案