我想繪制一個三面板圖,imshow頂部有一個,下面有另外兩個圖。我imshow的是具有相同的 x 和 y 尺寸,即。是平方的。另外兩個圖具有相同的 x 維度,因此它們可以共享 x 軸。但是,如何指定所有三個面板具有相同的寬度?
這是我的代碼
import matplotlib.pyplot as plt
x = np.linspace(0,100,20)
y = np.sin(x)
z = np.random.rand(100,100)
fig, (ax, ax2, ax3) = plt.subplots(nrows=3, sharex=True, figsize=(10,10), gridspec_kw={"height_ratios": [2,1,1]})
# "main" plot
ax.imshow(z)
# accessory plot #1
ax2.plot(x, y)
ax2.set_xlim(0,99)
# accessory plot #2
ax3.plot(x*2, y)
plt.show()
我不明白這里的行為,為什么我imshow沒有像下面兩個面板那樣的正確寬度?我在
我希望它看起來像這樣:

uj5u.com熱心網友回復:
布局絕對是 matplotlib 可以使用的一些作業。發生的事情是您有一個正方形圖形,其中height_ratios=[2, 1, 1]:第一個軸(您繪制影像的位置)的高度是其他兩個軸的兩倍。但是您正在繪制的影像也是正方形的,因此它使用了所有可用的高度,而它在水平方向上有“白色”空間。
嘗試玩,figsize也許是height_ratios這樣的:
fig, (ax, ax2, ax3) = plt.subplots(nrows=3, sharex=True, figsize=(6,12), gridspec_kw={"height_ratios": [4,1,1]})

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/461103.html
標籤:Python matplotlib
上一篇:如何處理numpy警告
