Python 调整网格xy比例等高线图matplotlib

Python 调整网格xy比例等高线图matplotlib,python,matplotlib,plot,mesh,contour,Python,Matplotlib,Plot,Mesh,Contour,我试图建立一个等高线图,但最终的图形是这样的: 我认为这是因为y轴从10到80个单位,x轴只有4到9个单位,网格是正方形的,所以每个单位在x轴和y轴上的比例相同。如何更改x轴的缩放比例以使其成为可用图像 import numpy as np import matplotlib.pyplot as plt import time as time from scipy.interpolate import griddata x = np.array([3.98, 3.98, 3.99, 3.98

我试图建立一个等高线图,但最终的图形是这样的:

我认为这是因为y轴从10到80个单位,x轴只有4到9个单位,网格是正方形的,所以每个单位在x轴和y轴上的比例相同。如何更改x轴的缩放比例以使其成为可用图像

import numpy as np
import matplotlib.pyplot as plt
import time as time
from scipy.interpolate import griddata

x = np.array([3.98, 3.98, 3.99, 3.98, 6.02, 6.05, 6.03, 6.04, 10.01, 10.07, 10.09, 10.1])
y = np.array([79.5, 40, 20.07, 10.04, 79.67, 40.08, 20.23, 10.01, 79.42, 39.63, 20.14, 10.11])
z = np.array([38.82697111, 34.61715402, 22.46052757, 13.51888155, 48.52466738, 42.1140194, 28.37788811, 16.48901657, 55.40461783, 46.88792485, 33.66091083, 20.9200696])

extent = (min(x), max(x), min(y), max(y))
xs,ys = np.mgrid[extent[0]:extent[1]:30j, extent[2]:extent[3]:30j]
resampled = griddata((x, y), z, (xs, ys))
plt.figure(figsize=(8,8))
plt.imshow(resampled.T, extent=(min(x), max(x), max(y), min(y)),interpolation='bicubic')
plt.contour(resampled.T, extent=(min(x), max(x), max(y), min(y)),interpolation='bicubic',origin='upper')
plt.hold(True)
plt.scatter(x,y,c=z)
plt.gca().invert_yaxis()
plt.colorbar()
plt.show()

只需手动设置
方面
关键字:

plt.imshow(resampled.T, extent=(min(x), max(x), max(y), min(y)),interpolation='bicubic', aspect=0.1)
或者使用
auto
选项:

plt.imshow(resampled.T, extent=(min(x), max(x), max(y), min(y)),interpolation='bicubic', aspect='auto')

另一个选择是使用
pcolormesh()

非常简单,谢谢!