Matplotlib 3D 散点图

Matplotlib 可以创建 3d 图。制作** 3D 散点图**非常类似于创建 2d 的散点图,只有一些细微差别。在某些情况下,三维散点图可能比二维图更好的来可视化数据。要创建三维图,我们需要导入 axes3d

简介

需要导入 axes3d:

from mpl_toolkits.mplot3d import axes3d

将数据赋予 z 轴并将图形设置为 3d 投影:

ax = fig.gca(projection='3d')

![matplotlib-散点图-3D](/img/Tutorial/Matplotlib/Matplotlib 3D scatter plot.svg)

3d 散点图

完整的 3D 散点图示例如下:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

# Create data
N = 60
g1 = (0.6 + 0.6 * np.random.rand(N), np.random.rand(N),0.4+0.1*np.random.rand(N))
g2 = (0.4+0.3 * np.random.rand(N), 0.5*np.random.rand(N),0.1*np.random.rand(N))
g3 = (0.3*np.random.rand(N),0.3*np.random.rand(N),0.3*np.random.rand(N))

data = (g1, g2, g3)
colors = ("red", "green", "blue")
groups = ("coffee", "tea", "water") 

# Create plot
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax = fig.gca(projection='3d')

for data, color, group in zip(data, colors, groups):
    x, y, z = data
    ax.scatter(x, y, z, alpha=0.8, c=color, edgecolors='none', s=30, label=group)

plt.title('Matplot 3d scatter plot')
plt.legend(loc=2)
plt.show()

使用以下几个步骤创建绘图:

  • 矢量创建(g1,g2,g3)
  • 列表创建(组)
  • 绘制

最终的图形用 plt.show() 来显示出来。