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

目录
相关文章
|
9天前
|
机器学习/深度学习 数据挖掘 数据处理
Pandas库
Pandas库是Python中进行数据分析和处理的强大工具,通过其丰富的功能和简洁的API,可以高效地完成各种数据处理任务,为后续的数据分析和机器学习提供了有力的支持。
|
13天前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
18天前
|
Python
|
18天前
|
Python
|
17天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
35 2
|
17天前
|
Python
Pandas 常用函数-数据合并
Pandas 常用函数-数据合并
31 1
|
18天前
|
索引 Python
Pandas 常用函数-数据排序
10月更文挑战第28天
8 1
|
18天前
|
数据采集 Python
Pandas 常用函数-数据清洗
Pandas 常用函数-数据清洗
17 2
|
18天前
|
Python
Pandas 常用函数-查看数据
Pandas 常用函数-查看数据
14 2
|
14天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
下一篇
无影云桌面