如何使用Matplotlib在球体上绘制具有给定坐标的3D体素

时间:2019-02-13 08:53:15

标签: python-3.x matplotlib

我目前正在尝试制作具有球体上已知坐标的3D体素图。 x,y和z坐标是从CSV过滤的列表。另外,我还有另一个与x,y和z长度相同的列表,其中包含体素的颜色。通过这些列表,我想创建一个3D体素球。

我已经使用3D散点图(matplotlib)完成了此操作,但结果不是很清楚:

x = []
y = []
z = []
c = []
red = (1, 0, 0, 1)
green = (0, 1, 0, 1)
blue = (0, 0, 1, 1)
black = (0, 0, 0, 1)

for i in range(len(result)):
    x.append(20 * math.sin(math.radians(90 - result[i][1])) * math.cos(math.radians(result[i][0])))
    y.append(20 * math.sin(math.radians(90 - result[i][1])) * math.sin(math.radians(result[i][0])))
    z.append(20 * math.cos(math.radians(90 - result[i][1])))
    if result[i][2] == 1000:
        c.append(black)
    elif result[i][2] > 500:
        c.append(red)
    elif 200 < result[i][2] <= 500:
        c.append(blue)
    else:
        c.append(green)

fig = pyplot.figure()
ax = Axes3D(fig)
ax.grid(True)
ax.scatter(x, y, z, c=c, s=500)
pyplot.show()

3D-Scatter

0 个答案:

没有答案