zoukankan      html  css  js  c++  java
  • L7-15 3D图形(二)

    一、课堂导入

    通过上节课的学习我们利用画三维图的工具包mpl_toolkits.mplot3d绘制了三维的散点图,本节课将会继续学习绘制更加有趣的立体图形。

    二、3D直方图

    # 导入必要的库
    import numpy as np 
    import matplotlib.pyplot as plt 
    from mpl_toolkits.mplot3d import Axes3D 
    # 指定图形大小 (宽,长)
    fig = plt.figure(figsize=(5,5)) 
    # 二维转换为三维 
    axes3d = Axes3D(fig) 
    # 设置Z轴坐标值,让每一个直方图间隔距离为5 
    zs = [0,5,10,15,20] 
    for z in zs: 
        # 在0-10中取出值(取头不取尾)
        x = np.arange(0,10) 
        # 随机在0-30取出10个值
        y = np.random.randint(0,30,size =10) 
        # zdir将哪个方向用作z('x','y'或'z'),指定颜色
        axes3d.bar(x,y,zs = z,zdir = 'x',color=['red','green','yellow','purple']) 
    plt.show()

    三、3D网格线

    3.1 绘制1X1网格,第一子图

    from mpl_toolkits.mplot3d import axes3d
    import matplotlib.pyplot as plt
    fig = plt.figure() 
    #把画布分为1行1列,从左往右从上往下第1块区域
    # 表示“1×1网格,第一子图”   调用Axes3d
    ax = fig.add_subplot(111, projection='3d')
    #生成一系列的测试数据,提供的值在0-0.1之间
    X, Y, Z = axes3d.get_test_data(0.08) 
    #绘制线框(输入数据,行步长,列步长)
    ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)
    plt.show()

    3.2 两行一列网格线

    # # 两行一列
    from mpl_toolkits.mplot3d import axes3d 
    import matplotlib.pyplot as plt 
    fig = plt.figure() 
    # 表示“2×1网格,第一子图”   调用Axes3d
    ax1 = fig.add_subplot(211, projection='3d') 
    # 表示“2×1网格,第二子图”   调用Axes3d
    ax2 = fig.add_subplot(212, projection='3d') 
    #生成一系列的测试数据,提供的值在0-0.1之间
    X1, Y1, Z1 = axes3d.get_test_data(0.08) 
    X2, Y2, Z2 = axes3d.get_test_data(0.08) 
    #绘制线框
    ax1.plot_wireframe(X1, Y1, Z1, rstride=5, cstride=5) 
    ax2.plot_wireframe(X2, Y2, Z2, rstride=5, cstride=5) 
    plt.show()

    四、3D立体图

    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    # 创建一个绘图对象 
    fig = plt.figure()
    # 将多个三维图放在一个平面
    # # 表示“2×1网格,第一子图”   调用Axes3d
    ax = fig.add_subplot(111, projection='3d')
    #任意三点形成一个面
    X = [3,1,2,4,5]
    Y = [3,7,4,5,3]
    Z = [1,2,1,6,2]
    # 绘制曲面 (四个点可以确定一个四面体)
    ax.plot_trisurf(X, Y, Z)
    plt.show()

    五、正四棱锥

    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    X = [0,4,4,0,2]
    Y = [0,0,4,4,2]
    Z = [0,0,0,0,4]
    ax.plot_trisurf(X, Y, Z)
    plt.show()
  • 相关阅读:
    javascript通用循环遍历方法forEach
    伪数组
    引用和基本类型
    谈谈Javascript的this指针
    理解内存分配
    理解undefined和null
    getElementsByClassName实现
    NSubstitute完全手册(十五)自动递归模拟
    NSubstitute完全手册(十七)参数匹配器上的操作
    NSubstitute完全手册(九)检查接收到的调用
  • 原文地址:https://www.cnblogs.com/xiaoxiao-ya/p/12570581.html
Copyright © 2011-2022 走看看