大多数数据可视化教程都给出了大致相同的基本内容:散点图,折线图,箱形图,条形图和热图等,一般都是2D平面图。
但是,如果我们希望跟进一步,该怎么办? 2D图只能显示一对x--y轴之间的关系;而3D图可以让我们探索3对轴:X--y,X--z和y--z。
在本文中,我将向您简要介绍使用Matplotlib进行3D数据可视化的方法。
3D散点图和线图[Scatter图和Line图]
Matplotlib中的3D绘图通过启用实用程序工具包开始。通过pip安装时,mplot3d库随您的标准Matplotlib安装一起提供。只要确保您的Matplotlib版本超过1.0。
导入此子模块后,对于Matplotlib中的任何常规轴创建函数,可以通过传递projection="3d"关键字来创建3D图,:
frommpl_toolkits importmplot3d
importnumpy asnp
importmatplotlib.pyplot asplt
fig = plt.figure()
ax = plt.axes(projection="3d")
plt.show()
现在,我们的轴已创建,我们可以开始以3D绘图。 3D绘图功能非常直观:scatter我们称之为scatter3D,而不是仅通过X和y数据,我们越过X,y和z。其他所有功能设置(例如颜色和线型)均与2D绘图功能相同。
这是绘制3D线和3D点的示例。
fig = plt.figure()
ax = plt.axes(projection="3d")
z_line = np.linspace(0, 15, 1000)
x_line = np.cos(z_line)
y_line = np.sin(z_line)
ax.plot3D(x_line, y_line, z_line, 'gray')
z_points = 15 * np.random.random(100)
x_points = np.cos(z_points) + 0.1 * np.random.randn(100)
y_points = np.sin(z_points) + 0.1 * np.random.randn(100)
ax.scatter3D(x_points, y_points, z_points, c=z_points, cmap='hsv');
plt.show()