Python中的3D图

时间:2013-10-09 19:23:55

标签: python 3d matplotlib plot

如何在3个维度中绘制以下数据? (显然,还有更多!)

data = [[10, 10, 0.84496124031007758],
        [10, 20, 0.87209302325581395],
        [10, 30, 0.88139534883720927],
        [20, 10, 0.86201550387596892],
        [20, 20, 0.87441860465116272],
        [20, 30, 0.88992248062015500],
        [30, 10, 0.87984496124031009],
        [30, 20, 0.89922480620155043],
        [30, 30, 0.92015503875968996]]

3 个答案:

答案 0 :(得分:5)

你想要得到什么样的情节?试试这个散点图。我还假设您的数据列在问题的x,y,z列表中。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x, y, z = zip(*data)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x,y,z)
plt.show()

答案 1 :(得分:0)

您还可以使用DataMelt http://jwork.org/dmelt。与使用HPlot或HPlotJa或SPlot java类来可视化数据一样,您可以像上一个示例ANF一样以pythonic方式解析此文件。您还可以导出到Esp或pdf图像文件

答案 2 :(得分:0)

基本上是将 projection='3d' 添加到您的子图。

import matplotlib.pyplot as plt
import numpy as np


fig = plt.figure() # create new figure
ax = fig.add_subplot(projection='3d') # add 3d plot

n = 100 # number of points

# random points
x = np.random.rand(n)
y = np.random.rand(n)
z = np.random.rand(n)

# make and show plot
ax.scatter(x, y, z)
plt.show()

使用 ax.scatter,您可以配置点标记、颜色等。

看起来像图 enter image description here