python_matplotlib画三维图

作者: Kedi | 来源:发表于2016-03-08 15:47 被阅读4435次

    各种3d画图参考网站
    其他种类图参考网站

    用二维泡泡图表示三维数据

    泡泡的坐标2维,泡泡的大小三维,使用到的函数

    plt.scatter(P[:,0], P[:,1], s=S, lw = 1.5,
                      edgecolors = C, facecolors='None')
    

    其中P[:,0], P[:,1]为泡泡的坐标数据,s为泡泡的大小,lw为泡泡的边线宽度,edgecolors为边线颜色,facecolors为填充颜色

    代码及注释

    import numpy as np
    import matplotlib.pyplot as plt
    
    fig = plt.figure(figsize=(9,6))
    
    # 泡泡的数量
    n = 50
    size_min = 50
    size_max = 50*50
    
    # Ring position,rand可以产生2维数组
    P = np.random.rand(n,2)
    
    # Ring colors R,G,B,A
    C = np.ones((n,4)) * (0,0,0,1)
    # Alpha color channel goes from 0 (transparent) to 1 (opaque)
    C[:,3] = np.linspace(0,1,n)
    
    # Ring sizes
    S = np.linspace(size_min, size_max, n)
    
    # Scatter plot
    plt.scatter(P[:,0], P[:,1], s=S, lw = 1.5,
                      edgecolors = C, facecolors='None')
    
    #range只能排列出整数,在排列小数时可以用到np.arange
    plt.xlim(0,1), plt.xticks(np.arange(0,1.1,0.1))
    plt.ylim(0,1), plt.yticks(np.arange(0,1.1,0.1))
    
    plt.show()
    

    结果

    Paste_Image.png

    三维螺旋线图

    三维螺旋线图

    需要导入三维工具mplot3d

    from mpl_toolkits.mplot3d import Axes3D
    

    导入了这个工具后才能在add_subplot时添加参数

    projection='3d'
    

    完整代码及注释

    from mpl_toolkits.mplot3d import Axes3D
    import numpy as np
    import matplotlib.pyplot as plt
    
    fig = plt.figure(figsize=(9,6))
    #添加参数projection
    ax = fig.add_subplot(111,projection='3d')
    
    z = np.linspace(0, 6, 1000)
    r = 1
    x = r * np.sin(np.pi*2*z)
    y = r * np.cos(np.pi*2*z)
    #c是颜色
    ax.plot(x, y, z, label=u'螺旋线', c='r')
    ax.legend()
    #存成图片,支持png格式
    # dpi每英寸长度的点数,画出的三维图是矢量图,可以设置保存的dpi
    plt.savefig('3d_fig.png',dpi=200)
    plt.show()
    

    相关文章

      网友评论

      本文标题:python_matplotlib画三维图

      本文链接:https://www.haomeiwen.com/subject/ksszkttx.html