Python 使用Matplotlib绘制等高线和线框图

Python 使用Matplotlib绘制等高线和线框图,python,matplotlib,plot,Python,Matplotlib,Plot,我必须为函数绘制轮廓图和线框图。这是我目前掌握的代码: #均匀分布的随机数 n=2000 定义函数向量(x1s,x2s): 返回x1s*x1s+4*x2s*x2s np.random.seed() x1s=np.随机.均匀(-1,1,n) x2s=np.随机均匀(-1,1,n) ys=函数向量(x1s,x2s) 图=plt.图() #散开 ax1=图add_子批次(1,2,1) ax1.散点(x1s,x2s,颜色='g',s=2,边缘颜色='none') ax1.set_ylim([-1,1])

我必须为函数绘制轮廓图和线框图。这是我目前掌握的代码:

#均匀分布的随机数
n=2000
定义函数向量(x1s,x2s):
返回x1s*x1s+4*x2s*x2s
np.random.seed()
x1s=np.随机.均匀(-1,1,n)
x2s=np.随机均匀(-1,1,n)
ys=函数向量(x1s,x2s)
图=plt.图()
#散开
ax1=图add_子批次(1,2,1)
ax1.散点(x1s,x2s,颜色='g',s=2,边缘颜色='none')
ax1.set_ylim([-1,1])
ax1.set_xlim([-1,1])
#轮廓
ax1.轮廓(x2s、x1s、ys[np.新轴,:]。重复(n,轴=0))
#三维可视化
ax2=图add_子图(1,2,2,投影='3d')
X=x1s
Y=x2s
Z=ys
ax2.绘制线框(X,Y,Z,rstride=1,cstride=1)
plt.show()
我不明白的是
contour()
plot\u firewrame()
实际上是如何工作的?有人能这么客气地向我解释一下吗(在指定函数的上下文中)?此外,我应该如何指定X、Y和Z

现在的情节是这样的:

这就是它应该是什么样子(上面的分散可以):
以下是生成正确绘图的代码。任何对此感到困惑的人都会发现代码几乎是不言自明的:

#均匀分布的随机数
n=2000
定义函数向量(x1s,x2s):
返回x1s*x1s+4*x2s*x2s
np.random.seed()
x1s=np.随机.均匀(-1,1,n)
x2s=np.随机均匀(-1,1,n)
ys=函数向量(x1s,x2s)
图=plt.图(22)
#散开
ax1=图add_子批次(1,2,1)
ax1.散点(x1s,x2s,颜色='g',s=2,边缘颜色='none')
ax1.set_ylim([-1,1])
ax1.set_xlim([-1,1])
#轮廓
席=NP·林空间(-1,1,20)
yi=np.linspace(-1,1,20)
zi=griddata((x2s,x1s),ys,(xi[None,:],yi[:,None]),method='cubic')
ax1.等高线(xi,yi,zi,6,线宽=1,颜色=('0000ff','0099ff','009999','999900','ff9900','ff0000'))
#三维可视化
ax2=图add_子图(1,2,2,投影='3d')
十、 Y=np.meshgrid(xi,yi)
ax2.绘制线框(X,Y,zi,rstride=1,cstride=1)
ax2.视图初始化(28,-144)
plt.show()

这些函数在点的顺序中预期结构。线框代码在4个相连的邻居之间画线,因此你得到了一个鸟巢。谢谢,
griddata()
meshgrid()
完成了这项工作!你能给出一个解释你所做的事情的答案吗?我怎样才能得到比彩色线条更纯色的轮廓方案呢@衍射使用
contourf
。是否可以反向使用?我的意思是从一个3D数据集生成一个曲面拟合模型,然后得到拟合曲面的方程??