Python 用pandas和seaborn绘图


matplotlib是一个相当底层的工具。可以从其基本组件中组装一个图表:数据显示(即绘图的类型:线、条、框、散点图、轮廓等)、图例、标题、刻度标记和其他注释。在pandas中,我们可能有多个数据列,并且带有行和列的标签。pandas自身有很多内建方法可以简化从DataFrame和Series对象生成可视化的过程。另一个库是seaborn,它是由Michael Waskom创建的统计图形库。seaborn简化了很多常用可视化类型的生成。

注意: 导入seaborn会修改默认的matplotlib配色方案和绘图样式,这会提高图表的可读性和美观性。即使不使用seaborn的API,可以导入seaborn来为通用matplotlib图表提供更好的视觉美观度。

1、折线图

Series和DataFrame都有一个plot属性,用于绘制基本的图形。默认情况下,plot()绘制的是折线图。

pandas绘图,seaborn绘图,密度图

Series对象的索引传入matplotlib作为绘图的x轴,可以通过传入use_index=False来禁用这个功能。x轴的刻度和范围可以通过xticks和xlim选项进行调整,相应地y轴使用yticks和ylim进行调整。

大部分pandas的绘图方法,接收可选的ax参数,该参数可以是一个matplotlib子图对象。这使你可以更为灵活地在网格布局中放置子图。

DataFrame的plot方法在同一个子图中将每一列绘制为不同的折线,并自动生成图例。

pandas绘图,seaborn绘图,密度图

plot属性包含了不同绘图类型的方法族。例如,df.plot()等价于df.plot.line()。我们之后将会探索这些方法中的一部分。

下表展示了plot的其他关键字参数。

pandas绘图,seaborn绘图,密度图

2、柱状图

plot.bar()和plot.barh()可以分别绘制垂直和水平的柱状图。在绘制柱状图时,Series或DataFrame的索引将会被用作x轴刻度(bar)或y轴刻度(barh):

pandas绘图,seaborn绘图,密度图

选项color=’k’和alpha=0.7将柱子的颜色设置为黑色,并将图像的填充色设置为部分透明。

在DataFrame中,柱状图将每一行中的值分组到并排的柱子中的一组。

pandas绘图,seaborn绘图,密度图

在DataFrame中,柱状图将每一行中的值分组到并排的柱子中的一组。

3、直方图和密度图

直方图是一种条形图,用于给出值频率的离散显示。数据点被分成离散的,均匀间隔的箱,并且绘制每个箱中数据点的数量。使用之前的小费数据,可以使用Series的plot.hist方法制作小费占总费用百分比的直方图。

pandas绘图,seaborn绘图,密度图
pandas绘图,seaborn绘图,密度图

密度图是一种与直方图相关的图表类型,它通过计算可能产生观测数据的连续概率分布估计而产生。通常的做法是将这种分布近似为“内核”的混合,也就是像正态分布那样简单的分布。因此,密度图也被称为内核密度估计图(KDE)。

pandas绘图,seaborn绘图,密度图
pandas绘图,seaborn绘图,密度图

4 散点图或点图

点图或散点图可以用于检验两个一维数据序列之间的关系。

pandas绘图,seaborn绘图,密度图

然后我们可以使用seaborn的regplot方法,该方法可以绘制散点图,并拟合出一个条线性回归线。

pandas绘图,seaborn绘图,密度图
pandas绘图,seaborn绘图,密度图

在探索性数据分析中,能够查看一组变量中的所有散点图是有帮助的,这被称为成对图或散点图矩阵。从头开始绘制这样一个图是有点工作量的,所以seaborn有一个方便的pairplot函数,它支持在对角线上放置每个变量的直方图或密度估计值。

pandas绘图,seaborn绘图,密度图

5 分面网格和分类数据

如果数据集有额外的分组维度怎么办?使用分面网格是利用多种分组变量对数据进行可视化的方式。seaborn拥有一个有效的内建函数factorplot,它可以简化多种分面绘图。

pandas绘图,seaborn绘图,密度图

评论区(0)

评论