我正在嘗試在稍微非矩形的資料集(x 軸范圍小于 y 軸范圍)上創建一個 4x2 圖,并使用plt.subplots并分配顏色條,make_axes_locatable以使顏色條與子圖保持一致。我總是在兩個子圖列之間出現巨大的填充/邊距,我懷疑它們來自顏色條......我已經從許多 stackoverflow 問題(例如使用等)中嘗試了多種方法fig.subplots_adjust(),constrained_layout=True但無濟于事。兩列之間的邊距保持很大(見下面的 img)并使影像不可讀......
任何輸入將不勝感激!用于重現問題的代碼:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.axes_grid1.axes_divider import make_axes_locatable
data = np.random.random((10, 6))
fig, axs = plt.subplots(nrows=4, ncols=2, figsize=(16, 8), sharex=True, sharey=False, constrained_layout=True)
for idx in range(4):
# plot image
im1 = axs[idx, 0].imshow(data, cmap=cm.coolwarm)
im2 = axs[idx, 1].imshow(data, cmap=cm.viridis)
# make colorbars
ax1_divider = make_axes_locatable(axs[idx, 0])
cax1 = ax1_divider.append_axes("right", size="2%", pad=0.05)
cb1 = fig.colorbar(im1, cax=cax1, orientation="vertical")
ax2_divider = make_axes_locatable(axs[idx, 1])
cax2 = ax2_divider.append_axes("right", size="2%", pad=0.05)
cb2 = fig.colorbar(im2, cax=cax2, orientation="vertical")
uj5u.com熱心網友回復:
您正在繪制多個影像(默認情況下它會嘗試保持相等的縱橫比),其中高度大于寬度。因此,影像的總高度 > 影像的總寬度。
因此,減少列之間的白色間距的一種方法是減少圖形的寬度。
嘗試設定這個:
fig, axs = plt.subplots(nrows=4, ncols=2, figsize=(4, 8), sharex=True, sharey=False, constrained_layout=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/477799.html
標籤:Python matplotlib 填充 子情节
上一篇:在matplotlib中注釋熱圖
