一篇文章带你使用Pandas画出图形

这篇文章带领你们介绍一下如何使用pandas进行可视化操做,绘制一些图形,如条形图、直方图、散点图等,以及一些绘图时缺失值的绘制方式和一些绘图的工具和格式,方便你们更快的了解如何使用Pandas进行可视化的绘图,相信经过这篇文章你们能够在之后处理数据的时候能够绘制出本身想要的图形。shell

1、可视化基础介绍

Pandas在内部绘图时使用的是matplotlib的API, Matplotlib是一个Python 2D绘图库,它能够在各类平台上以各类硬拷贝格式和交互式环境生成出具备出版品质的图形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包,Matplotlib试图让简单的事情变得更简单,让没法实现的事情变得可能实现。 只需几行代码便可生成绘图,直方图,功率谱,条形图,错误图,散点图等。为了简单绘图,pyplot模块提供了相似于MATLAB的界面,特别是与IPython结合使用时。服务器

2、基本绘图

在Pandas中series和DataFrame上面的使用plot方法进行绘图只是围绕着plt.plot()的简单封装。函数

  • 生成一个1000条随机数,索引为2000/1/1开始1000条的series,并生成图。

在DataFrame中,plot()能够方便的绘制带有标签的全部列工具

  • 生成一个行索引为ts表的索引,列为ABCD 4列,内容为4列1000条随机数的DataFrame,并绘制为图

  • 使用plot()中的x和y关键字能够绘制一列与另外一列对应的图片

3、其余绘图

绘制方法容许除了默认线条以外的其余绘图样式。这些方法能够经过plot()的kind关键字参数空值。包括如下内容:布局

Bst或bsthspa

绘制条形图3d

Hist对象

绘制直方图索引

Box图片

绘制箱形图

Kde或density

绘制密度图

Area

绘制区域图

Scatter

绘制散点图

Hexbin

绘制蜂巢图

Pie

绘制饼图

除了使用kind参数,也可使用直接对应的方法来完成相应的绘图效果

  1. 条形图

条形统计图主要用于表示离散型数据资料,即计数数据。单式条形统计图和复式条形统计图的相同点是都能让人清楚地看出 数量的多少。不一样点就是单式条形统计图用于比较一个物体,而复式条形统计图用于比较多个物体的数量。

或者使用DataFrame的plot.bar()方法生成一个或多个条形图

  • 生成10行4列的随机数,列名为a,b,c,d,并绘制条形图

若是要生成堆叠的条形图,能够设置stacked参数=True;

若是要生成水平的条形图可使用barh方法:

  1. 直方图

直方图能够用来查看显示质量波动的状态;比较直观地传递有关过程质量情况的信息;当质量数据波动情况以后,就能掌握过程的情况,从而肯定在什么地方集中力量进行质量改进工做。

直方图咱们能够经过DataFrame.plot.hist()和series.plot.hist()进行绘制

直方图还能够经过参数实现堆叠,只须要将Stacked参数=True。宽度大小还能够经过bins关键字更改。

  1. 箱线图

箱线图是利用数据中的五个统计量:最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法,它也能够粗略地看出数据是否具备有对称性,分布的分散程度等信息,特别能够用于对几个样本的比较,能够用来查看数据异常值;数据的偏态和尾重;数据的形状。

绘制箱线图能够经过plot.box()进行绘制

咱们还能够经过传递颜色关键字对boxplot进行着色

着色完以后,盒子边为暗绿色,线条为暗黄色,中位数为暗蓝色,第一四分位数和第三四分位数为绿色。

咱们还能够经过vert参数来空值方向,=False为横向,=True为纵向(默认),还能够经过positions空值每一个图的位置。

除了经过plot.box()绘制箱线图以外,咱们还能够经过boxplot的方法直接进行绘图,两种方法的效果是同样的。

咱们也能够经过使用by关键字参数建立分层的boxplot来建立分组绘制图形。

经过x列进行分组,col1中a的随机数差距较大,b的差距很小,col2中a的差距小,b的差距稍大。

除了可使用单个关键字以外还能够经过多个关键字进行分组

首先经过设置的条件能够看出是对Col1和col2进行分组,分组的条件是X和Y,而后将X和Y进行分组,总共能够分为AA,AB,BA,BB这四种类型,而后将这四种类型进行绘制箱线图得出图形

四、面积图

面积图又称区域图,强调数量随时间而变化的程度,也可用于引发人们对总值趋势的注意。堆积面积图和百分比堆积面积图还能够显示部分与总体的关系。

咱们能够经过面积图查看总值的趋势,能够帮助咱们进行趋势分析。

绘制面积图咱们能够经过plot.area

若是咱们不但愿绘制堆叠图,能够经过Stacked=False,进行绘制

五、散点图

散点图是指数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大体趋势,一般用于回归分析,据此能够选择合适的函数对数据点进行回归拟合。多组散点图一般用于聚类,能直观地看出每组数据点的分布。

绘制散点图可使用plot.scatter()方法

若是但愿再一个图绘制多个列,指定绘图的目标后ax能够重复调用绘图方法,最好是指定颜色和标签关键字来区分每一个组。

经过数据能够看出,两个表的数据经过颜色区分开来,一个为橙色一个为蓝色,很方便的就能看出每一个数据的分布状况。

关键字C能够做为列的名称给出,能够为每一个点提供颜色。

六、蜂巢图(六角形箱体图)

使用plot.hexbin()进行绘制蜂巢图,能够看出数据出现的次数多少。

七、饼图

饼状图是以圆形表明研究对象的总体,用以圆心为共同顶点的各个不一样扇形显示各组成部分在总体中所占的比例,要注明各扇形所表明的项目的名称(可用图例表示)及其所占百分比。饼状图能够比较清楚地反映出部分与部分、部分与总体之间的数量关系,易于显示每组数据相对于总数的大小,并且显现方式直观。

咱们能够经过plot.pie()进行生成饼图

分红两组进行绘制

经过autopct参数进行查看占比

若是数据中值的总和小于1的时候,那么matplotlib则会绘制一个半圆。

4、缺失值的默认绘制方式

Pandas试图真实确切地描绘包含缺乏值的DataFrame或series。根据绘图类型,丢弃省略或填充缺失值。

绘图类型

缺失值处理方法

Line

在缺失值处填充空白

Line(stacked)

填充为0

Bar

填充为0

Scatter

删除掉缺失值

Histogram

删除掉缺失值(逐列删除)

Box

删除掉缺失值(逐列删除)

Area

填充为0

Kde

删除掉缺失值(逐列删除)

Hexbin

删除掉缺失值

Pie

填充为0

若是默认的缺失值处理方式不符合预期的话,就须要本身手动去处理缺失值了(使用fillna或者dropna方法)

5、绘图工具

一、矩阵散点图

导入模块

查看图形

能够发现每两个图之间出散点之间的位置与图形

二、密度图

查看数据的分布状况。

6、绘图格式

大多数的绘图方法都有一组关键字参数来控制返回图形的布局和格式。

一、控制图例

当legend=True(默认)时会显示图例,也就是二图的右上角,=False时会隐藏图例。

二、scales

经过传入logy得到将y轴更改成logy的状况

三、在双Y轴上面画图

若是要在DataFrame中绘制一些列,能够将列的名称给secondary_y关键字

若是在辅助Y轴上绘制的列在图例中自动标记为(右),若是要关闭自动标记,就须要使用mark_right=False了。

相关文章
相关标签/搜索