zoukankan      html  css  js  c++  java
  • 可视化库-Matplotlib-3D图(第四天)

    1. 画三维图片图 axes = Axes3D(fig)这一步将二维坐标转换为三维坐标,axes.plot_surface()

    import matplotlib.pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D
    
    fig = plt.figure()
    # 将二维转换为三维的情况
    axes = Axes3D(fig)
    x = np.arange(-4, 4, 0.25)
    y = np.arange(-4, 4, 0.25)
    
    X, Y  = np.meshgrid(x, y)
    Z = np.sin(np.sqrt(X**2 + Y**2))
    # 画三维曲面图,rstride=1, cstride=1表示曲面的一个方格的位置
    axes.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
    # 画出投影, zm表示投影的方向,offset表示投影所处位置,cmap表示使用的colormap
    axes.contour(X, Y, Z, zm='Z', offset=-2, cmap='rainbow')
    # 扩大z轴的范围使得图看起来更加的压缩
    axes.set_zlim(-2, 2)
    plt.show()

    2. 构造三维坐标系的两种方法, 同时画三维曲线图ax=fig.add_subplot(111, projection='3d') ax = fig.gca(projection='3d'),同时画三维曲线图

    # 构造坐标轴的方法1
    fig = plt.figure()
    # 构造了三维的坐标轴
    ax = fig.add_subplot(111, projection='3d')
    plt.show()
    
    # 构造坐标轴的方法2
    figure =  plt.figure()
    ax = figure.gca(projection='3d')
    
    theta = np.linspace(-4 * np.pi, 4*np.pi, 100)
    z = np.linspace(-2, 2, 100)
    r = z**2 + 1
    x = np.sin(theta) * r
    y = np.cos(theta) * r
    ax.plot(x, y, z, color='r')
    plt.show()

    3. 画三维散点图 ax.plot   # plt.view_init(40, 20)进行视角的变化

    np.random.seed(0)
    # 用于生成随机点
    def randrange(n, vmin, vmax):
        return (vmax-vmin)*np.random.randn(n) + vmin
    
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    n = 100
    
    for c, m, zlow, zhigh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
        xs = randrange(100, 23, 32)
        ys = randrange(100, 0, 100)
        zs = randrange(100, zlow, zhigh)
        ax.scatter(xs, ys, zs, marker=m, color=c)
    # 进行视角的变化 ax.view_init(40, 20) plt.show()

    4.画三维条形图(有一点问题)带有颜色编码的条形图

    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    
    for c, z in zip(['r', 'g', 'b', 'y'], [30, 20, 10, 0]):
        xs = np.arange(20)
        ys = np.random.rand(20)
    cs = [c] * len(len(xs)) ax.bar(xs, ys, zs
    =z, zdir='y', color=cs) plt.show()

  • 相关阅读:
    typeof 和 Object.prototype.toString 的区别
    获取地理信息的JavaScript 库 -- YQL Geo
    关于html5手机
    我看过的书的示例网站
    解决跨浏览器问题网站收集
    【docker】docker初试与填坑
    sunJCE or ibmJce,was服务器下使用des的注意点
    cxf-webservice-在was6服务器上运行
    微星b85(b85i b85-gaming) 系列dsdt
    IE10的bug?disabled button如何触发事件
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/10239131.html
Copyright © 2011-2022 走看看