zoukankan      html  css  js  c++  java
  • python绘图:matplotlib和pandas的应用

    在进行数据分析时,绘图是必不可少的模式探索方式。用Python进行数据分析时,matplotlib和pandas是最常用到的两个库。

    1、matplotlib库的应用
    准备工作如下:打开ipython,输入命令分别导入numpy和matplotlib.pylab库。

    [python] view plain copy
     
    1. import numpy as np  
    2. import matplotlib.pylab as plt  


    1)创建fig
    绘图第一步是创建绘图窗口fig。

    [python] view plain copy
     
    1. fig1 = plt.figure()  


    2)创建subplot
    在窗口上添加AxesSubplot类型的子绘图区域,一个窗口可以添加多个子绘图区。

    [python] view plain copy
     
    1. ax1 = fig1.add_subplot(2,2,1)  
    2. ax4 = fig1.add_subplot(2,2,4)  


    3)subplot中绘图
    调用子绘图区的方法,可以绘制点线图、频数图、散点图等常用图形。
    注意:在同一个subplot中多次调用plot(),所得到的图形是相互覆盖的。

    [python] view plain copy
     
    1. ax1.plot(np.random.randn(50).cumsum(),'k--')  
    2. ax4.hist(np.random.randn(30))  


    4)各类参数设置
    主要关注以下几种方法:set_xlims设置坐标轴的上下限、set_ticks设置坐标刻度、set_ticklabel设置坐标标注。

    [python] view plain copy
     
    1. ax1.set_xlim(-10,60)  
    2. ax1.set_xticks([0,20,40,60])  
    3. ax1.set_xticklabels(['a','b','c','d'])  


    5)清除和保存图形
    用subplot的clear()方法可以清除现有的图形,用figure的savefig()保存图形到指定路径。

    [python] view plain copy
     
    1. ax1.clear()  
    2. #windows下的路径  
    3. fig1.savefig(‘.\test.jpg’)  


    2、pandas库的应用
    相比于利用matplotlib库绘图,采用pandas绘图要便捷得多。参照前一部分,同样需要导入pandas、numpy库。

    [python] view plain copy
     
    1. import pandas as pd  
    2. from pandas import Series,DataFrame  
    3. import numpy as np  


    1)plot方法及参数
    对于Series和DataFrame类型的数据,可以直接调用两种类型对应的plot方法,绘图时自动采用索引值绘制横坐标,采用每一列数据绘制纵坐标。这里分别以两类数据为例。

    [python] view plain copy
     
    1. se1 = Series(np.random.randn(30).cumsum())  
    2. df = DataFrame({'a':np.random.randn(30),'b':np.random.randn(30)})  

    参数设置很方便,在plot()方法参数列表中添加相应参数值即可。常用的有:类型kind可设置为line(线图)、bar(垂直柱状图)、barh(水平柱状图)、kde(核密度估计图),另外还有color颜色设置、linestyle线型设置、alpha设置透明度、grid设置网格等。

    [python] view plain copy
     
    1. se1.plot(kind = 'bar', color = 'g', alpha = 0.5, grid=True)  
    2. df.plot(kind = 'bar', alpha=0.5)  


    2)频数图、散点图
    频数图采用hist绘制即可,单幅的散点图还得依靠matplotlib库,但pandas提供多幅散点图矩阵的快速绘图方法。

    [python] view plain copy
     
    1. se1.plot(kind = 'bar', color = 'g')  
    2. #对角线上图形设置为核密度图  
    3. pd.scatter_matrix(df, diagonal='kde')  


    3)清除和保存图形
    有时候,我们希望清除掉当前图形或者干脆关闭绘图窗口。可以采用figure的clear()方法清除图形,采用matplotlib.pylab的close()方法则能够直接关闭图形窗口。

    [python] view plain copy
     
    1. df.plot()  
    2. #清除绘图  
    3. _.get_figure().clear()  
    4. #关闭窗口  
    5. plt.close()  


    3、python绘图的未来
    Python同时具备强大的数据分析功能和Web开发功能,未来绘图的趋势将是更加紧密的联系数据分析和Web发布功能,所有绘制的图形应当能够方便的在网页上发布。数据分析人员和网页开发人员的工作耦合将会更加紧密。

  • 相关阅读:
    容易忽视的运算符问题
    JAVA:数组,排序,查找<4>
    JAVA:类的三大特征,抽象类,接口,final关键字<3>
    JAVA:变量,数据类型,运算符,流程控制(简介)<1>
    JAVA:类,对象,成员属性,成员方法,构造方法,类变量,类方法<2>
    JAVA:二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题(5)
    java静态代码块、初始化块和构造方法的执行顺序
    java面试题小全
    java中从1000万个随机数中查找出相同的10万个随机数花的最少时间
    Java数据类型总结
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/7210789.html
Copyright © 2011-2022 走看看