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