我想要4個方塊圖中包含的精確平方子圖Matplotlib:Gridspec和aspect ='auto'不兼容?
我有以下最小代碼,無法產生我想要的東西。
#latexify()
g1 = gridspec.GridSpec(2, 2,height_ratios=[1,1],width_ratios=[1,1])
g1.update(wspace=0.05, hspace=0.4) # set the spacing between axes
f, ((ax0, ax1), (ax2, ax3)) = plt.subplots(2, 2, sharex='col', sharey='row')
ax0 = subplot(g1[0])
ax1 = subplot(g1[1])
ax2 = subplot(g1[2])
ax3 = subplot(g1[3])
ax0.plot([1, 2, 3], [1, 2, 3])
ax1.plot([1, 2, 3], [1, 2, 3])
ax2.plot([1, 2, 3], [1, 2, 3])
ax3.plot([1, 2, 3], [1, 2, 3])
ax0.set_title("G/G")
ax1.set_title("G/BN")
ax2.set_title("BN/BN (0$\degree$)")
ax3.set_title("BN/BN (60$\degree$)")
ax0.set_xticklabels([])
ax1.set_xticklabels([])
ax1.set_yticklabels([])
ax3.set_yticklabels([])
ax0.set(adjustable='box-forced', aspect='equal')
ax1.set(adjustable='box-forced', aspect='equal')
ax2.set(adjustable='box-forced', aspect='equal')
ax3.set(adjustable='box-forced', aspect='equal')
我得到了很多的左,右副區之間的空白。我嘗試了其他問題的幾個選項:sharex/sharey的輪流,強制不同的圖形大小(這就是註釋掉的latexify()函數允許我做的),使用gridspec heigh_ratios,但無濟於事。
也許這是對你感興趣的指定
figsize
選項:做小區像這樣的時候我喜歡把一切都變成了循環使更改變得更容易。對於ax0,ax1,ax2,ax3中的斧頭,我們可以使用ax.set(可調整='box-forced',aspect ='equal')' 和所有其他重複的東西。 – Achim確實。謝謝。 – Nigu