绘制三维数据的断层扫描图?

时间:2014-02-03 13:37:06

标签: python r numpy matplotlib scipy

关于我之前发布的问题,我的想法很模糊,我对如何说明数量感到困惑。 我有三维数据集。在其中一个维度中,我有关于该轴中每个点的概率分布。例如,具有(X_0,Y_0)坐标的点具有以下概率:给定Z_0具有P(Z_0)=0.21且Z在[0,1.5]之间变化。例如,我想在Z=0.8绘制断层图。

我怎样才能添加2-D阵列的概率分布 - 例如在[0,1.5]和另一列p(z)之间的一列Z - 到每个点,然后在一个给定的Z处制作3D图和一个断层摄影图?

我将数据网格化为3D数组。然后我计算了x-y平面上的点数。在z方向上,我将每个单元格中每个点的z概率从0增加到1.5,然后我将其归一化为x-y平面中每个网格单元格中的点数。

现在我不知道如何制作一个等高线图,我希望预测z的概率,存储在z = 0.8的每个单元格中,对于垂直于z方向的切片,其上限和下限为[0.75,0.85]。有什么建议吗?

nx=200;ny=200
z=np.arange(0.0001,1.501,0.001)
xi = np.linspace(min(Xpos)-1, max(Xpos)+1, nx)
yi = np.linspace(min(Ypos)-1, max(Ypos)+1, ny)


mesh=np.zeros((nx-1,ny-1,len(z)),float)
print "gridding data:"
print mesh.shape
NP_mesh=[[0]*(ny-1)]*(nx-1)
NP_mesh=np.asarray(NP_mesh)
num_gal=0
for ii in range(len(Xpos)):
    num_gal+=1
    for i in range(nx-1):
        for j in range(ny-1):
            if ((Xpos[ii]>=xi[i]) and (Xpos[ii]<xi[i+1]) and (Ypos[ii]>=yi[j]) and (Ypos[ii]<yi[j+1])):
               NP_mesh[i,j]+=1.0
               for k in range(len(z)):
                   mesh[i,j,k]+=PDF[ii,k+1]

new_mesh=np.zeros((nx-1,ny-1,len(z)),float)
for i in range(nx-1):
    for j in range(ny-1):
        if (NP_mesh[i,j]!=0): 
       new_mesh[i,j,:]=mesh[i,j,:]/float(NP_mesh[i,j])

0 个答案:

没有答案