python绘图:matplotlib和pandas的应用

摘要:
在使用Python进行数据分析时,matplotlib和panda是最常用的两个库。[python]viewplaincopyimportnumpyasnpimportmatplotlib。pylabasplt1)创建fig图形的第一步是创建图形窗口fig[python]viewplaincopyfig1=plt。图()2)创建一个子绘图,将AxesSubplot类型的子绘图区域添加到窗口中。可以将多个子绘图区域添加到窗口中。[python]viewplaincopax1.clear()#Windows下的路径图1.savefig2。panda库的应用比使用matplotlib库绘制要方便得多。[python]viewplaincopyse1.plotdf。图2)可以通过hist绘制频率图和散点图频率图。单个散点图必须依赖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发布功能,所有绘制的图形应当能够方便的在网页上发布。数据分析人员和网页开发人员的工作耦合将会更加紧密。

免责声明:文章转载自《python绘图:matplotlib和pandas的应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.NET Core 控制台应用生成exe文件uniapp app-plus pages.json下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何用R来处理数据表的长宽转换(图文详解)

不多说,直接上干货! 很多地方都需用到这个知识点,比如Tableau里。 通常可以采取如python 和 r来作为数据处理的前期。 Tableau学习系列之Tableau如何通过数据透视表方式读取数据文件(图文详解)如何用Python来处理数据表的长宽转换(图文详解) 数据长宽转换是很常用的需求,特别是当是从Excel中导入的汇总表时,常常需要转换成一维表...

Python(16)_爬去百度图片(urlopen和urlretrieve)

import urllib.request image_url = 'http://img18.3lian.com/d/file/201709/21/f498e01633b5b704ebfe0385f52bad20.jpg' response = urllib.request.urlopen(url=image_url) # 二进制的形式保存,方法一 w...

ML基础06-数据不平衡问题

0、什么是数据不平衡问题 在机器学习的分类问题中,不同类别的样本数据量存在差异。在某些场景,比如网页点击率预估(网页点击率低),购物推荐(浏览产生的购买少),信用卡欺诈,网络攻击识别等,这种差异可能会较大。传统的学习算法,对不同类别的数据一视同仁地处理,会产生在多数类样本效果较好,但是在少数类样本上效果差的问题。而在上述的四种场景中,我们更关注的是少数类的...

Swing清空jtable中的数据

如何正确的清空jtable中的数据,我想你也会被api误导,api虽然提供了 removeRow方法 然而用起来却很恶心。。。 错误方法: 使用 tableModel.removeRow( rowindex ); 你会经常得到以下错误: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIn...

python从入门到实践第十一章练习题

'''这是11-1和11-2的练习题用于接受城市名称的函数'''"""def get_ciy_name(city,country):#定义一个城市名称的函数有2个形参 city_name = city + ',' + country return city_name.title()#把值返回给函数,用title()的方法把每个单词的第一个字母转...

python中常用的内置函数和内置模块

一、InnerFuction 内置函数1、type() 返回对象或者变量的数据类型      print(type("嘻嘻"))            #class_str       a=3      print(type(a))                  #class_int 2、abs() 返回数字的绝对值      print(abs(-1...