Matplotlib绘制三维图像

原文地址

分类目录——Matplotlib

  • 先观察效果

    1581990808367

  • 导入支持包

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
  • 生成画布、构造三维画布

    fig = plt.figure()
    ax = Axes3D(fig)    # 相当于在二维画布的基础上加了一个轴,ax可以看做一个三维画布
    
  • 生成测试数据

    # 生成测试数据
    X = np.arange(-4, 4, 0.25)
    Y = np.arange(-4, 4, 0.25)
    X, Y = np.meshgrid(X, Y)    # x-y 平面的网格
    R = np.sqrt(X ** 2 + Y ** 2)
    # z轴值
    Z = np.sin(R)   # Z=sin(x**2 + y**3)
    
  • 画图

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
    # rstride   row stride行线步宽
    # cstride   column stride列线步宽
    # cmap      color map颜色图
    

    此时进行plt.show()出图的话如文首图所示

  • 沿某个坐标轴做投影

    ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))
    # 等高线图,可以看做是沿某个轴的主视图,也可看做投影
    # zdir      可选x,y,z,沿那个轴进行投影
    # offset    投影面的垂直轴坐标,(这里是z轴坐标)
    # cmap=plt.get_camp()   颜色参数可选值可参见 https://matplotlib.org/examples/color/colormaps_reference.html
    
  • 设定一下z轴的范围

    # 设定z轴的值范围
    ax.set_zlim(-2, 2)
    
  • 出图

    plt.show()
    

    出图如下

    1581991216866

  • 说明

    将代码按顺序复制即可执行

  • 参考文献

    代码主要来自 3D 数据,略有改动

发布了119 篇原创文章 · 获赞 86 · 访问量 5850

猜你喜欢

转载自blog.csdn.net/BBJG_001/article/details/104423248
今日推荐