感谢在本网站上获得的知识。我能够编写一个简单的脚本来打印等高线图的坐标(x和y)。
以下是一个例子:
from numpy import *
from pylab import *
# generate a set of random points
npts = 500
phi = random(npts)*2*pi
theta = random(npts)*pi
u = random(npts)
x = u * sin( theta) * cos( phi )
y = u * sin( theta) * sin( phi )
z = u * cos( theta )
bins = linspace(-1,1,100)
H = histogram2d(x,y,bins=(bins,bins))
fig=figure()
ax1 = fig.add_subplot(1,1,1)
levels = [1,2,3]
CS = ax1.contour(H[0].T,levels=levels)
show()
# print contours coordinates
for kk in range(len(levels)):
print CS.allsegs[kk][0][:,0],CS.allsegs[kk][0][:,1]
我想做同样的事情,但是在3D中我却在苦苦挣扎。
要做的第一步是对数据进行分区,我可以这样做:
H = histogramdd((x,y,z),bins=(bins,bins,bins))
但是现在,我怎样才能获得3D轮廓的坐标?我甚至无法想出一个简单的算法。