如何用 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")
我想制作一个二维表面图,看起来应该是这样的
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")