Ten*_*gis 21 python matplotlib
我试图用散点图来绘制一些数据.我的代码是
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from scipy.interpolate import griddata
data = np.loadtxt('file1.txt')
x = data[:,0]
y = data[:,1]
z = data[:,2]
plt.scatter(x, y, c=z, s=100, cmap=mpl.cm.spectral)
cbar=plt.colorbar()
s=18
plt.ylabel(r"$a_v$", size=s)
plt.xlabel(r"$a_{\rm min}$", size=s)
plt.xlim([x.min(),x.max()])
plt.ylim([y.min(),y.max()])
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果是

现在我想出了一些尝试用一些数据来表达的想法,因为我不喜欢分散的圈子.所以我尝试了这个
from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
data = np.loadtxt('file1.txt')
x = data[:,0]
y = data[:,1]
z = data[:,2]
N = 30j
extent = (min(x), max(x), min(y), max(y))
xs,ys = np.mgrid[extent[0]:extent[1]:N, extent[2]:extent[3]:N]
resampled = griddata(x, y, z, xs, ys)
plt.imshow(resampled.T, extent=extent)
s=18
plt.ylabel(r"$a_v$", size=s)
plt.xlabel(r"$a_{\rm min}$", size=s)
plt.xlim([x.min(),x.max()])
plt.ylim([y.min(),y.max()])
cbar=plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)
有了这个结果:

我的问题显然是为什么imshow()反转数据?这到底发生了什么?
PS:这是数据,以防有人想和他们一起玩
Tho*_*anz 36
查看关键字参数imshow.有origin.默认值为"upper",但您需要"lower".
默认情况下,绘制图像通常从左上角开始.对于大多数矩阵绘图,您需要origin="lower"