2017-06-20 72 views
0

我有一組12個圖,我想保存爲一個。第一組是9段的3×3子圖,第二部分是4段的2×2子圖。 我試圖在這兩個之間添加一個子圖(121),我試圖使用圖(1)和圖(2),但都沒有遇到我將這兩個圖像保存爲一個大圖像。有沒有一個簡單的方法來做到這一點?Python繪製兩個子圖

plt.subplot(331) 
plt.imshow(getpoly(seg1),origin="lower") 
plt.subplot(332) 
plt.imshow(getpoly(seg2),origin="lower") 
plt.subplot(333) 
plt.imshow(getpoly(seg3),origin="lower") 
plt.subplot(334) 
plt.imshow(getpoly(seg4),origin="lower") 
plt.subplot(335) 
plt.imshow(getpoly(seg5),origin="lower") 
plt.subplot(336) 
plt.imshow(getpoly(seg6),origin="lower") 
plt.subplot(337) 
plt.imshow(getpoly(seg7),origin="lower") 
plt.subplot(338) 
plt.imshow(getpoly(seg8),origin="lower") 
plt.subplot(339) 
plt.imshow(getpoly(seg9),origin="lower") 


plt.subplot(221) 
plt.imshow(h1,origin="lower") 
plt.colorbar() 
plt.subplot(222) 
plt.imshow(h2,origin="lower") 
plt.colorbar() 
plt.subplot(223) 
plt.imshow(getpoly(h2),origin="lower") 
plt.colorbar() 
plt.subplot(224) 
plt.imshow(h1-getpoly(h2),origin="lower") 
plt.colorbar() 
+0

3×2×2 + = 9 + 4 = 13,你會如何有12個次要情節呢? – ImportanceOfBeingErnest

回答

2

你可能會想,如圖here使用gridspecGridSpecFromSubplotSpec

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.gridspec as gridspec 

gs = gridspec.GridSpec(1, 2) 
gs0 = gridspec.GridSpecFromSubplotSpec(3, 3, subplot_spec=gs[0]) 
gs1 = gridspec.GridSpecFromSubplotSpec(2, 2, subplot_spec=gs[1]) 

fig = plt.figure() 

for i in range(9): 
    ax = fig.add_subplot(gs0[i//3, i%3]) 
    ax.imshow(np.random.rand(4,4)) 
    ax.set_xticks([]); ax.set_yticks([]) 

for i in range(4): 
    ax = fig.add_subplot(gs1[i//2, i%2]) 
    ax.imshow(np.random.rand(4,4)) 
    ax.set_xticks([]); ax.set_yticks([]) 

plt.show() 

enter image description here

+0

謝謝,這正是我需要的! – Coolcrab

+0

還有一個問題,我在右邊的四個圖像中有顏色條,兩個最右邊的圖像與左邊的顏色條重疊。有什麼方法可以輕鬆修復這個間距? – Coolcrab

+0

我不知道你的意思。我想你明白評論部分並不是要問一個新問題。你有兩個選擇:1.編輯你的問題,包括你有問題的代碼和不希望的輸出的圖像,或者2.提出一個新的問題。 – ImportanceOfBeingErnest