![](/img/trans.png)
[英]MatPlotLib - Subplots of subplot or multiple broken axis charts on single plot
[英]matplotlib combining subplots into a single plot with no axis and no gaps
我有一個看起來像這樣的圖像:
它是使用 matplotlib 生成的,使用:
for slice_idx in range(mandrill_t.highpasses[1].shape[2]):
print(slice_idx)
subplot(2, 3, slice_idx+1)
imshow(np.abs(mandrill_t.highpasses[1][:,:,slice_idx]), cmap='Spectral', clim=(0, 1))
但是,對於我的用例,我希望所有這 6 個圖像在一個沒有間隙或軸的圖像中 - 我沒有要顯示的示例輸出圖像,但基本上,我希望它們水平堆疊(其中 3 個)和垂直(其中 2 個),以便 6 個圖像是單個圖像。
我試圖四處尋找類似的問題以從中汲取靈感,但到目前為止還沒有運氣:(
任何指針都會很棒。
這就是GridSpec
的用途(參見plt.subplots
文檔):
只需在開頭添加以下行:
subplots(2, 3, gridspec_kw={"wspace": 0, "hspace": 0})
您可能還必須將一些繪圖元素設置為不可見,但如果沒有 MCVE,就很難准確判斷出哪個元素。
您必須指定網格參數:
使用matplotlib.pyplot.subplots
:
fig, axes = plt.subplots(nrows = 2, ncols = 3, gridspec_kw = {'wspace': 0, 'hspace': 0})
然后你可以遍歷創建的軸,對於每個軸,你必須首先顯示圖像並將軸設置為'tight'
,然后設置為'off'
:
for ax in axes.flatten():
ax.imshow(img)
ax.axis('tight')
ax.axis('off')
您的代碼會略有不同,因為您正在為每個ax
繪制不同的圖像。
import matplotlib.pyplot as plt
img = plt.imread('img.jpeg')
fig, axes = plt.subplots(nrows = 2, ncols = 3, gridspec_kw = {'wspace': 0, 'hspace': 0})
for ax in axes.flatten():
ax.imshow(img)
ax.axis('tight')
ax.axis('off')
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.