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