如何用 3 轴绘制梯度图

How to plot Gradient graph with 3 axis

我想制作一个二维表面图,看起来应该是这样的

for i in range(26):
    for u in range(11,102):
    line=linecache.getline("C:/Users/USER/Desktop/iteration/" + file_name[i],u)
    line=np.array(line.split())
    z.append(float(line[2]))
    vmr.append(float(line[3]))
x=np.linspace(4,6,num=3458)
y=np.array(z)
z=np.array(vmr)
xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 
100)
xi, yi = np.meshgrid(xi, yi)
# Interpolate
zi = scipy.interpolate.griddata((x, y), z, (xi, yi), method='linear')

plt.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower',
       extent=[x.min(), x.max(), y.min(), y.max()])

plt.scatter(x, y, c=z)
plt.colorbar()
plt.show()

我使用上面的代码得到的情节是:

除了 python 之外,我应该尝试其他 language/software 吗??? 我是新来的,任何帮助将不胜感激 谢谢

问题似乎是图像图沿两个轴的尺寸非常不同。由于 imshow 默认情况下具有相同的方面,因此您可能会得到与您在问题中显示的结果类似的结果。

一个简单的解决方案是放宽对等纵横比的限制:

plt.imshow(...., aspect="auto")