• 二十九、3D 绘图

    二十九、3D 绘图

    您好,欢迎阅读 Matplotlib 教程中的 3D 绘图。 Matplotlib 已经内置了三维图形,所以我们不需要再下载任何东西。 首先,我们需要引入一些完整的模块:

    1. from mpl_toolkits.mplot3d import axes3d
    2. import matplotlib.pyplot as plt

    使用axes3d是因为它需要不同种类的轴域,以便在三维中实际绘制一些东西。 下面:

    1. fig = plt.figure()
    2. ax1 = fig.add_subplot(111, projection='3d')

    在这里,我们像通常一样定义图形,然后我们将ax1定义为通常的子图,只是这次使用 3D 投影。 我们需要这样做,以便提醒 Matplotlib 我们要提供三维数据。

    现在让我们创建一些 3D 数据:

    1. x = [1,2,3,4,5,6,7,8,9,10]
    2. y = [5,6,7,8,2,5,6,3,7,2]
    3. z = [1,2,6,3,2,7,3,3,7,2]

    接下来,我们绘制它。 首先,让我们展示一个简单的线框示例:

    1. ax1.plot_wireframe(x,y,z)

    最后:

    1. ax1.set_xlabel('x axis')
    2. ax1.set_ylabel('y axis')
    3. ax1.set_zlabel('z axis')
    4. plt.show()

    我们完整的代码是:

    1. from mpl_toolkits.mplot3d import axes3d
    2. import matplotlib.pyplot as plt
    3. from matplotlib import style
    4. style.use('fivethirtyeight')
    5. fig = plt.figure()
    6. ax1 = fig.add_subplot(111, projection='3d')
    7. x = [1,2,3,4,5,6,7,8,9,10]
    8. y = [5,6,7,8,2,5,6,3,7,2]
    9. z = [1,2,6,3,2,7,3,3,7,2]
    10. ax1.plot_wireframe(x,y,z)
    11. ax1.set_xlabel('x axis')
    12. ax1.set_ylabel('y axis')
    13. ax1.set_zlabel('z axis')
    14. plt.show()

    结果为(包括所用的样式):

    二十九、3D 绘图 - 图1

    这些 3D 图形可以进行交互。 首先,您可以使用鼠标左键单击并拖动来移动图形。 您还可以使用鼠标右键单击并拖动来放大或缩小。