Pandas数据分析之Matplotlib数据可视化库函数详解运用

简介: Pandas数据分析之Matplotlib数据可视化库函数详解运用

前言


dfca6294fc491e6919decd19599d2c04.jpg



更加灵活。而Pandas的可视化是依赖于Matplotlib库和seaborn库,Matplotlib自身也是一个功能十分丰富的库,可以构建出很多直观简洁多样的图片。而利用Pandas中DataFrame或是series数据集构建的可视化也在一些实际的数据分析也特别实用。本篇文章将详细介绍各个不同绘图函数的功能和作用以及带来的展示效果。


一、查看Pandas版本


引入pandas后通过pandas.__version__就可看到版本:


print(pd.__version__)


二、图片展示设置


由于Pandas是依赖Matplotlib库和seaborn库来实现绘图的,所以设置字体也就是设置Matplotlib和seaborn绘图时的字体。在没有设置中文字体的情况下,显示中文的时候会出现方块形状。


matplotlib的配置文件即 .rc 文件,为 matplotlib 输出图形的几乎所有属性指定了永久的默认值。(图形属性包括包括窗体大小、每英寸的点数、线条宽度、颜色、样式、坐标轴、坐标和网络属性、文本、字体等)


输入:


plt.rcParams.keys()

20210602175912409.png


可查看rcParams参数设置,这里列出几个非常常用的rc参数函数:


# 显示图像的最大范围


lt.rcParams['figure.figsize']

#分辨率


matplotlib.rcParams[‘savefig.dpi']


# 差值方式


plt.rcParams['image.interpolation']


    //最邻近插值
    resize(src, dst, Size(0, 0), 0.5, 0.5, INTER_NEAREST);//如果Size(0,0),则图像大小为Size(width*fx height*fy)
    imshow("NEAREST", dst);
    //双线性插值
    resize(src, dst, Size(width * 2, height * 2), fx, fy, INTER_LINEAR);
    imshow("LineNear", dst);
    //双立方插值
    resize(src, dst, Size(width * 2, height * 2), fx, fy, INTER_CUBIC);
    imshow("CUBIC", dst);
    //LANCZOS插值
    resize(src, dst, Size(width * 2, height * 2), fx, fy, INTER_LANCZOS4);
    imshow("LANCZOS", dst);

# 灰度空间


plt.rcParams['image.cmap']

 //perceptual uniform sequential colormaps:感知均匀的序列化 colormap


 sequential colormaps:序列化(连续化)色图 colormap;


gray:0-255 级灰度,0:黑色,1:白色,黑底白字;

gray_r:翻转 gray 的显示,如果 gray 将图像显示为黑底白字,gray_r 会将其显示为白底黑字;

binary

 diverging colormaps:两端发散的色图 colormaps;


seismic

 qualitative colormaps:量化(离散化)色图;


 miscellaneous colormaps:其他色图;


rainbow

#设置字体和样式


plt.rcParams['font.sans-serif']


//字体为SimHei显示中文


plt.rcParams['font.sans-serif'] = 'SimHei'


样式


plt.rcParams['font.family']
plt.rcParams['font.stretch'] = 'normal'
plt.rcParams['font.style'] = 'normal'
plt.rcParams['font.variant'] = 'normal'
plt.rcParams['font.weight'] = 'normal'


# 设置字体大小


plt.rcParams['font.size']


#设置显示字符


plt.rcParams['axes.unicode_minus']


#设置线条样式


plt.rcParams['lines.linestyle']


#设置线条宽度


plt.rcParams['lines.linewidth']



想设置其他的参数可使用plt.rcParams.keys()自行寻找。


中文展示常用设置为:

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['KaiTi']
mpl.rcParams['font.serif'] = ['KaiTi']
mpl.rcParams['axes.unicode_minus'] = False 
import seaborn as sns
sns.set_style("darkgrid",{"font.sans-serif":['KaiTi', 'Arial']})   


三、 常用图例


首先是绘图时函数的各个参数说明:


class SeriesPlotMethods(BasePlotMethods):
    """Series plotting accessor and method
    Examples
    --------
    >>> s.plot.line()
    >>> s.plot.bar()
    >>> s.plot.hist()
    Plotting methods can also be accessed by calling the accessor as a method
    with the ``kind`` argument:
    ``s.plot(kind='line')`` is equivalent to ``s.plot.line()``
    """
    def __call__(self, kind='line', ax=None,
                 figsize=None, use_index=True, title=None, grid=None,
                 legend=False, style=None, logx=False, logy=False,
                 loglog=False, xticks=None, yticks=None,
                 xlim=None, ylim=None,
                 rot=None, fontsize=None, colormap=None, table=False,
                 yerr=None, xerr=None,
                 label=None, secondary_y=False, **kwds):
        return plot_series(self._data, kind=kind, ax=ax, figsize=figsize,
                           use_index=use_index, title=title, grid=grid,
                           legend=legend, style=style, logx=logx, logy=logy,
                           loglog=loglog, xticks=xticks, yticks=yticks,
                           xlim=xlim, ylim=ylim, rot=rot, fontsize=fontsize,
                           colormap=colormap, table=table, yerr=yerr,
                           xerr=xerr, label=label, secondary_y=secondary_y,
                           **kwds)
           --------

kind:种类 line(默认)

ax:要在其上进行绘制的matplotlib.subplot对象,如果没有,则使用默认的subplot对象。

figsize:图像尺寸

use_index:True(默认),False。表示默认情况下,会将series和dataframe的index传给matplotlib,用已绘制X轴。

title:标题

grid:网格

legend:图例

style,绘图的风格,如‘ko--’

logx:在X轴上使用对数标尺

logy: 在Y轴上使用对数标尺

loglog:

xticks=None,用做x刻度的值

yticks=None,用做Y轴刻度的值

xlim=None, X轴的界限如【0,10】

ylim=None,Y轴的界限

rot=None,  旋转刻度标签 0-360


540375fd8e48a13494602737c0b53384.jpg

一、线形图


显示数据的变化趋势,反映事物的变化情况。

可用于衔接收盘价而形成的图形,仅记录收盘价,至於开盘价、当日最高价、当日最高的变动及波动幅度则欠缺


Dataframe.plot.line()

20210602193016479.png

2021060219294911.png



画一般的线图推荐使用:DataFrame.plot.line(self, x=None, y=None, **kwargs).


二、条形图


能够使人们一眼看出各个数据的大小,易于比较数据之间的差别。


Dataframe.plot.bar()

20210602193603939.png

堆积条形图


Dataframe.plot.bar(stacked=True)


水平条形图


Dataframe.plot.barh()


20210602194127525.png

三、饼形图


饼图可以用来将 数据点(在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标记的图形表示。相同颜色的数据标记组成一个数据系列) 显示为数据总额的百分比。


当多个数据点的数据值都小于饼图的 5% 时,区分各个扇区将十分困难。


扇形统计图可以比较清楚地反映出部分与部分、部分与整体之间的数量关系。易于显示每组数据相对于总数的大小。


饼图必须设定y轴或者


subplots=True

subplots 为必要参数设置为True,当然也可以指定y的值。

figsize 图片的大小。

autopct 显示百分比。

radius 圆的半径。

startangle 旋转角度。

legend 图例。

colormap 颜色。


20210602201024892.png



四 、散点图

散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。


用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。散点图将序列显示为一组点。值由点在图表中的位置表示。类别由图表中的不同标记表示。散点图通常用于比较跨类别的聚合数据。

20210602204729725.png

在使用scatter数据必须是DataFrame,需要指明x和y值。

DataFrame.plot.scatter('x','y')


五、面积图


应用场景:范围面积图用来展示持续性数据,可很好地表示趋势、累积、减少以及变化。堆积面积图还可以显示部分与整体的关系。折线图和面积图都可以用来帮助我们对趋势进行分析,当数据集有合计关系或者你想要展示局部与整体关系的时候,使用面积图为更好的选择。


评价:大多用来展示差值变化


DataFrame.plot.area(stacked=False)


20210604121142353.png

生成堆积图


df2.plot.area()
20210604121213402.png


六、箱线图


箱线图是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。

be9d8c38024b300bfe207f9533aff90b.jpg

175008979d0ed3981a5d4c7607621989.png

这组数据显示出:


最小值(minimum)=5

下四分位数(Q1)=7

中位数(Med--也就是Q2)=8.5

上四分位数(Q3)=9

最大值(maximum)=10

平均值=8

四分位间距(interquartile range)={\displaystyle Q3-Q1}=2 (即ΔQ)

在区间 Q3+1.5ΔQ, Q1-1.5ΔQ 之外的值被视为应忽略(farout)。


farout: 在图上不予显示,仅标注一个符号∇。

最大值区间: Q3+1.5ΔQ

最小值区间: Q1-1.5ΔQ

最大值与最小值产生于这个区间。区间外的值被视为outlier显示在图上.


mild outlier = 3.5
extreme outlier = 0.5

图形参数:


DataFrame.boxplot(self, column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, **kwds)
df3.iloc[1:15].plot.box()


20210604124024897.png

目录
相关文章
|
27天前
|
数据采集 SQL 数据可视化
使用Pandas进行高效数据分析
【6月更文挑战第1天】Pandas是Python数据分析的核心库,基于NumPy,提供高效的数据结构如Series和DataFrame。它支持数据加载(CSV、Excel、SQL等)、清洗、预处理、探索、可视化及时间序列分析。通过实例展示了如何加载CSV文件,填充缺失值,进行数据统计和按部门平均薪资的可视化。Pandas与Matplotlib等库集成,简化了数据分析流程,对数据科学家和分析师极其重要。
|
6天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
16天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【6月更文挑战第12天】在数字时代,Python因其强大的数据处理能力和易用性成为数据分析首选工具。结合Pandas(用于高效数据处理)和Matplotlib(用于数据可视化),能助你成为数据分析专家。Python处理数据预处理、分析和可视化,Pandas的DataFrame简化表格数据操作,Matplotlib则提供丰富图表展示数据。掌握这三个库,数据分析之路将更加畅通无阻。
|
20天前
|
数据可视化 数据挖掘 大数据
Python中的数据可视化库Matplotlib及其应用
数据可视化是数据分析过程中至关重要的一环,而Matplotlib作为Python中最流行的数据可视化库之一,为用户提供了丰富的绘图工具和定制选项。本文将介绍Matplotlib的基本用法和常见应用,帮助读者更好地利用这一强大工具进行数据呈现和分析。
|
26天前
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
57 2
|
1月前
|
数据采集 数据挖掘 数据处理
Python数据分析实战:使用Pandas处理Excel文件
Python数据分析实战:使用Pandas处理Excel文件
106 0
|
1月前
|
数据可视化 数据处理 Python
Python数据可视化:Matplotlib库的使用与实战
Python数据可视化:Matplotlib库的使用与实战
43 0
|
1月前
|
数据采集 SQL 数据可视化
使用Python和Pandas库进行数据分析的入门指南
使用Python和Pandas库进行数据分析的入门指南
83 0
|
1月前
|
数据采集 SQL 存储
使用Python和Pandas进行数据分析
使用Python和Pandas进行数据分析
33 0
|
15天前
|
数据可视化 Python Windows
使用Python进行数据可视化(一、matplotlib)
使用Python进行数据可视化(一、matplotlib)

热门文章

最新文章