尝试在3D模式下绘制等高线图或pcolor图

时间:2019-04-21 22:27:23

标签: python matplotlib 3d contour

我有一个函数(I),用于定义控制体积中的压力场。 我通过对3个向量(X,Y,Z)进行网格化来创建此控制体积,并将I函数应用于3d网格中的所有点。

我试图找到一种方法来绘制每个点的颜色,该颜色对应于I函数返回的幅度。我觉得这就像3d中的颜色图。

我试图在z方向上为每个级别绘制一个等高线图,并将其叠加在一个3d图中

'''

def ControlVolume(ress):
    x=np.linspace(-ress.X,ress.X,num=102);
    y=np.linspace(-ress.Y,ress.Y,num=102);
    z=np.linspace(-ress.Z,ress.Z,num=102);
    XV,YV,ZV=np.meshgrid(x,y,z)
    return XV,YV,ZV

def Isopotential(well,ress,x,y,z):
    I=(ress.mu/(4*np.pi*np.sqrt(ress.kx*ress.ky*ress.kz))*(well.q*
       ((x-ress.X)**2/ress.kx+(y-ress.Y)**2/ress.ky+(z-ress.Z)**2/ress.kz)
       **(-0.5)))
    return I

well1=well(10,10,10,5)
ress1=ress(20,20,20,10,10,1,0.3,0.2)
X,Y,Z=ControlVolume(ress1)
Ifield=Isopotential(well1,ress1,X,Y,Z)

'''

在我的头上,它看起来应该像是一个以同心球状传播的场。

0 个答案:

没有答案