[英]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.