如何使用matplotlib重新缩放坐标轴?

ujv3wf0j  于 2023-08-06  发布在  其他
关注(0)|答案(2)|浏览(115)

我使用pcolormesh绘制了一个图形:

fig, ax = plt.subplots()
ax.pcolormesh(Omega_re, Omega_im, brightness, cmap="gray", shading="gouraud")
ax.set_xlabel(r"$Re(\omega)$")
ax.set_ylabel(r"$Im(\omega)$")
ax.set_aspect(1)
fig.show()

字符串
其中,

Omega_re = array([[2.  , 2.75, 3.5 , 4.25, 5.  ], [2.  , 2.75, 3.5 , 4.25, 5.  ],
       [2.  , 2.75, 3.5 , 4.25, 5.  ], [2.  , 2.75, 3.5 , 4.25, 5.  ],
       [2.  , 2.75, 3.5 , 4.25, 5.  ]])

Omega_im = array([[0. , 0. , 0. , 0. , 0. ], [0.0005, 0.0005, 0.0005, 0.0005, 0.0005],
       [0.001 , 0.001 , 0.001 , 0.001 , 0.001 ], [0.0015, 0.0015, 0.0015, 0.0015, 0.0015],
       [0.002 , 0.002 , 0.002 , 0.002 , 0.002 ]])

brightness = array([[4.05649772, 3.7299948 , 2.61262439, 4.2841897 , 3.40368949],
                    [4.05649076, 3.72997624, 2.61258381, 4.2841071 , 3.40353591],
                    [4.05648399, 3.72995772, 2.61254052, 4.28402084, 3.40338229],
                    [4.05647716, 3.72993901, 2.6124984 , 4.28393373, 3.40322865],
                    [4.05647025, 3.72992049, 2.61245428, 4.2838476 , 3.40307499]])


但由于x轴的范围为0到5,y轴的范围为0到0.002,因此结果显示为“扁平”。


的数据
有没有一种方法可以重新调整y轴,使图形看起来更好?下面是它当前显示方式的图片。

af7jpaap

af7jpaap1#

更换

ax.set_aspect(1)

字符串

ax.set_aspect("auto")


或者简单地完全移除线。
set_aspect(1)(或等效的set_aspect("equal"))强制轴对x和y使用相同的缩放比例。使用set_aspect("auto")(默认值)允许matplotlib推断出一个良好的缩放比例来填充图。

结果


的数据

cl25kdpy

cl25kdpy2#

由于ax.set_aspect(1)将轴的纵横比设置为相等,因此轴是“平的”。换句话说,1英寸(例如)在两个轴上是相同的长度。如果你删除那条线,那么你会得到一个自动生成的纵横比,将显示更多的细节。

相关问题