簡體   English   中英

matplotlib // 子圖之間的空間

[英]matplotlib // space between subplots

我想使用matplotlib.pyplot subplots圖繪制圖像(在第一行)以及一些圖表(第二行和第三行)。 但是, imshow fucntion 在我無法擺脫的圖像周圍添加了一些額外的空白。 這是我的代碼和我得到的情節:

rcParams['figure.figsize'] = (16, 14)
_, axes = plt.subplots(3, 3)

axes[0][0].imshow(image)
axes[0][0].set_title('title')
axes[0][0].set_xticklabels(list())
axes[0][0].set_yticklabels(list())
axes[0][0].grid(False)

axes[0][1].imshow(image)
axes[0][1].set_title('title')
axes[0][1].set_xticklabels(list())
axes[0][1].set_yticklabels(list())
axes[0][1].grid(False)

axes[0][2].imshow(image)
axes[0][2].set_title('title')
axes[0][2].set_xticklabels(list())
axes[0][2].set_yticklabels(list())
axes[0][2].grid(False)

plt.savefig(file_name, bbox_inches='tight')

在下圖中,您可以清楚地看到第一行和第二行之間有明顯更多的空間:

我得到的情節

我想在所有子圖之間有一個相等的空間。 什么是最簡單的方法來做到這一點?

提前感謝您的任何建議!

最好的,阿列克謝

這是因為imshow以方形像素顯示圖像。 如果圖像的比例為 16:9,則子圖將重新調整形狀以適應圖像大小。 因此,它們將具有與其他子圖不同的形狀(有關更多信息,請參閱imshow 文檔)。

從這里,您有兩個解決方案:

  • 減少圖形高度以手動減少子圖之間的垂直空間
  • 防止imshow根據圖像調整軸的大小。 為此,您可以將縱橫比設置為自動aspect="auto" ,圖像將適合現有軸

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM