簡體   English   中英

從 Matplotlib 圖中刪除子圖的列/行

[英]remove column/row of subplots from Matplotlib figure

我有一個庫函數,它使用 pyplot 生成一個帶有 5x5 子圖網格的圖形。 在某些情況下,我想刪除一些列或行,以便為在某些特定情況下更相關的子圖提供更多空間。

我發現我可以在事后刪除子圖,使用fig.delaxes(ax) 但是,這只會在子圖所在的位置留下一個空白空間,即使我以這種方式刪除了一整行或一列子圖,更改子圖之間的間距,重繪或使用fig.tight_layout()

有沒有辦法讓 Matplotlib 縮小這些差距? 我可能可以編輯生成數字的代碼以跳過有問題的行/列,但如果可能的話,我想避免這種情況。

當然,您可以在事后設置 height_ratios:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(3, 5, constrained_layout=True)

for i in range(5):
    axs[1, i].set_xticks([])
    axs[1, i].set_yticks([])

gs = axs[0, 0].get_subplotspec().get_gridspec()
gs.set_height_ratios([1, 0.0001, 1])
plt.tight_layout()

for ax in axs[1, :]:
    fig.delaxes(ax)

......這並不完美,但非常接近......

在此處輸入圖片說明

暫無
暫無

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

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