• python matplotlib模块——绘制三维图形、三维数据散点图(转)


    转自https://blog.csdn.net/eddy_zheng/article/details/48713449

    python matplotlib模块,是扩展的MATLAB的一个绘图工具库。他可以绘制各种图形,可是最近最的一个小程序,得到一些三维的数据点图,就学习了下python中的matplotlib模块,如何绘制三维图形。

    初学者,可能对这些第三方库安装有一定的小问题,对于一些安装第三方库经验较少的朋友,建议使用 Anaconda ,集成了很多第三库,基本满足大家的需求,下载地址,对应选择python 2.7 或是 3.5 的就可以了(PS:后面的demo是python2.7):
    https://www.continuum.io/downloads#windows

    首先提醒注意,以下两个函数的区别:

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow') #绘面
    1

    ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r') #绘点
    1
    1、绘制3D曲面图
    # -*- coding: utf-8 -*-
    """
    Created on Thu Sep 24 16:17:13 2015

    @author: Eddy_zheng
    """

    from matplotlib import pyplot as plt
    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D

    fig = plt.figure()
    ax = Axes3D(fig)
    X = np.arange(-4, 4, 0.25)
    Y = np.arange(-4, 4, 0.25)
    X, Y = np.meshgrid(X, Y)
    R = np.sqrt(X**2 + Y**2)
    Z = np.sin(R)

    # 具体函数方法可用 help(function) 查看,如:help(ax.plot_surface)
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')

    plt.show()

    效果:


    2、绘制三维散点图
    # -*- coding: utf-8 -*-
    """
    Created on Thu Sep 24 16:37:21 2015

    @author: Eddy_zheng
    """
    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D

    data = np.random.randint(0, 255, size=[40, 40, 40])

    x, y, z = data[0], data[1], data[2]
    ax = plt.subplot(111, projection='3d') # 创建一个三维的绘图工程
    # 将数据点分成三部分画,在颜色上有区分度
    ax.scatter(x[:10], y[:10], z[:10], c='y') # 绘制数据点
    ax.scatter(x[10:20], y[10:20], z[10:20], c='r')
    ax.scatter(x[30:40], y[30:40], z[30:40], c='g')

    ax.set_zlabel('Z') # 坐标轴
    ax.set_ylabel('Y')
    ax.set_xlabel('X')
    plt.show()

    效果:


    上面就是学习区分了下两个函数,当时还被小困惑了下,希望对大家有所帮助。其实里面还有好多参数设置,比如说改变颜色,包括绘制点图的点的形状等都是可以改变的,有需要的大家可以自己看看这个函数,学习下(help(对应的function))。
    ————————————————
    版权声明:本文为CSDN博主「Eddy_zheng」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/eddy_zheng/article/details/48713449

  • 相关阅读:
    如何确定Kafka的分区数、key和consumer线程数
    Storm程序永久代内存溢出
    JVM堆内存相关的启动参数:年轻代、老年代和永久代的内存分配
    Git添加本地项目出现fatal: unable to get credential storage lock: File exists
    Kafka的通讯协议
    文件上传 数据对比
    jquery 弹出层
    XSS 简单理解之:AntiSamy
    XSS 简单理解
    超人说我最叼蝙蝠侠笑了 超级英雄战力排名
  • 原文地址:https://www.cnblogs.com/ffaiss/p/11757588.html
Copyright © 2020-2023  润新知