matplotlib Python中的3D绘图

frebpwbc  于 2023-05-01  发布在  Python
关注(0)|答案(3)|浏览(162)

如何在三维空间中绘制以下数据?(显然,还有更多!)

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]]
bvn4nwqk

bvn4nwqk1#

你想得到什么样的情节?尝试这个散点图。我还假设您的数据列在您的问题中的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()
y1aodyip

y1aodyip2#

您也可以使用DataMelt http://jwork.org/dmelt。您可以像前面的示例ANF那样以Python方式解析此文件,而不是使用HPlot或HPlotJa或SPlot java类来可视化数据。您还可以导出为ESP或PDF图像文件

b1uwtaje

b1uwtaje3#

它基本上是把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,您可以配置点标记,颜色和其他。
看起来像图

相关问题