我有一个三列数组,包含两个参数,即 x 轴和 y 轴,以及这两个参数的卡方。考虑到卡方值,我应该制作这两个参数的网格,然后绘制 1-sigma、2-sigma 和 3-sigma 等高线。我怎样才能在 matplotlib 中做到这一点?这是我的代码:x(这是“1.txt”文件中的第二列)和 y(这是第三列)应该从最小到最大排列,为了制作 x 和 y 轴,我认为可以使用meshgrid来完成。z(“1.txt”文件中的第一列)是卡方。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.mlab import griddata
x = np.genfromtxt('1.txt', usecols=(1))
y = np.genfromtxt('1.txt', usecols=(2))
z = np.genfromtxt('1.txt', usecols=(0))
plt.figure()
X, Y = np.meshgrid(x,y)
Z= griddata(x,y,z,X,Y)
contour=plt.contour(X,Y,Z)
plt.show()
此代码遇到错误:“RuntimeError:要在 griddata 中使用 interp='nn'(自然邻居插值),必须安装 natgrid。从http://github.com/matplotlib/natgrid安装它或使用 interp='线性'代替。” 当我使用 interp='linear' 时,运行代码会持续很长时间而没有任何结果。有没有办法解决这个问题?
qq_笑_17
相关分类