簡體   English   中英

具有相等縱橫比的子圖

[英]Subplot with equal aspect ratio

我想在同一行中以相同的縱橫比繪制 2 個子圖。 不然真的很丑!

所以,通常,我使用axes().set_aspect('equal') (因為我還想刪除軸,而且我不能使用 'off' 和 'equal'),但它不起作用就在這里,只出現第二張圖片

我的代碼:

plt.subplot(1,2,1)
axes().set_aspect('equal')
plt.tricontourf(x_exp, y_exp, z_exp)
plt.colorbar(shrink=0.9,drawedges=True, orientation='vertical')
plt.axis('off')
plt.title('tricontour')

plt.subplot(1,2,2)
axes().set_aspect('equal')
plt.tricontourf(x_exp, y_exp, z_exp2)
plt.colorbar(shrink=0.9,drawedges=True, orientation='vertical')
plt.axis('off')
plt.title('tricontour')

plt.show()

它可能適用於以下行,但子圖沒有tricontourf圖!

fig = plt.figure() ax1 = fig.add_subplot(2,1,1, adjustable='box', aspect=0.3) ax2 = fig.add_subplot(2,1,2)

你有辦法弄清楚嗎?

編輯: 數據樣本

我使用np.savez("Sample",x_exp=x_exp,y_exp=y_exp,z_exp=z_exp,z_exp2=z_exp2)來保存數據。

您可以使用以下幾行閱讀它:

import numpy as np
Data = np.load("Sample.npz")
x_exp = Data['x_exp']
y_exp = Data['y_exp']
z_exp = Data['z_exp']
z_exp2 = Data['z_exp2']

我認為這應該做你想做的。 我將每個軸定義為圖形的子圖並更改它們的屬性以獲得equal縱橫比並將它們關閉:

fig = plt.figure()

ax1 = fig.add_subplot(1,2,1)
im = ax1.tricontourf(x_exp, y_exp, z_exp)
plt.colorbar(im, drawedges=True, orientation='vertical')
ax1.set_aspect('equal')
ax1.set_axis_off()
ax1.set_title('tricontour')

ax2 = fig.add_subplot(1,2,2)
im = ax2.tricontourf(x_exp, y_exp, z_exp2)
plt.colorbar(im, drawedges=True, orientation='vertical')
ax2.set_aspect('equal')
ax2.set_axis_off()
ax2.set_title('tricontour')

plt.show()

我正在尋找相同的功能。 您可以通過傳遞subplots_kw=dict(<kw arguments for plt.axes>)來設置所有子圖的縱橫比

例如,

fig, axs = plt.subplots(2, 3, subplot_kw=dict(box_aspect=1))

暫無
暫無

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

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