python 如何使用pcolormesh重新缩放轴

yi0zb3m4  于 2023-10-14  发布在  Python
关注(0)|答案(2)|浏览(139)

我使用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轴,使图形看起来更好?下面是它当前显示方式的图片。

jmp7cifd

jmp7cifd1#

取代

ax.set_aspect(1)

ax.set_aspect("auto")

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

结果

aiazj4mn

aiazj4mn2#

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

相关问题