数据分析与知识发现
    主页 > 综合新闻 >

[Pandas]数据视觉化必懂的Pandas套件绘制Matplotlib分

数据分析一词相信大家耳熟能详,目的就是将搜集到的大量数据,经过有效整理及分析后,来洞悉其中的价值,进而提供更好的用户体验或是预测未来的趋势。

而数据视觉化就是其中一种帮助数据分析师观察数据的方式,所以本文就来应用所学,利用Pandas套件读取台湾开放数据平台-主要观光游憩据点游客人数月别统计的CSV档案资料,进行筛选整理,并且结合Matplotlib套件将资料视觉化,借此来看看哪一个观光景点最多人去。实作步骤如下:

安装Pandas及Matplotlib筛选Pandas DataFrame资料集绘制Matplotlib图表解决Matplotlib无法显示中文字问题

一、安装Pandas及Matplotlib

Matplotlib是一个Python的图表绘制套件,可以用来建立各种不同的图表,像是折线图、长条图与圆饼图等,并且能够依需求客制化显示,而Pandas套件内建了Matplotlib套件的绘图方法(Method),让开发人员能够直接利用Pandas DataFrame来建立图表。

首先,开启Visual Studio Code,建立一个资料夹与app.py档案,接着,在Terminal视窗中,利用以下指令来安装Pandas及Matplotlib套件:

既然Pandas套件已经含有Matplotlib套件的绘图方法(Method),为什么还要再安装Matplotlib套件呢?这是因为Pandas套件只有绘图功能,之后的图表显示和更多的客制化,就需要仰赖Matplotlib套件的帮忙。

接下来,前往台湾开放资料平台-主要观光游憩据点游客人数月别统计,下载CSV档案资料,并且存放在资料夹中,如下图:

而其中的数据内容如下图:

二、筛选Pandas DataFrame数据集

有了CSV档案资料后,就可以开启app.py档案,利用Pandas套件的read_csv()方法(Method)来进行读取,如下范例:

由于这个CSV档案是使用big5编码,所以范例中需使用encoding关键字参数来进行指定,否则会出现乱码。

假设本文想要来分析2019年台北市第一季(1~3月)各景点的旅客人数,这时候,就需要对Pandas DataFrame读取到的CSV资料来进行筛选,如下范例:

执行结果

以上范例使用了Pandas套件的loc[rows, colums]语法来选择所需的数据集,分别是第6行利用逻辑运算语法选择2019年台北市的列(rows)资料,以及第7行的「细分(景点名称)」、「1月」、「2月」、「3月」栏位(columns)。其中为了让教学简单易懂,所以只取前10笔数据。

在Pandas套件绘制图表时,x轴会使用Pandas DataFrame的索引值(index)来显示,这时候范例中的数字索引值(index)就会降低可读性,因为在图表上无法一眼看出这个索引值(index)是对应到哪一个「细分(景点名称)」。

所以,就需要呼叫Pandas套件的set_index()方法(Method)来重新指定想要的索引值(index)栏位,也就是「细分(景点名称)」,并且设定inplace=True取代原索引值(index ),如下范例:

执行结果

三、绘制Matplotlib图表

Pandas DataFrame数据集准备好后,就可以来绘制图表了,而为了要显示与客制化图表,就需要引用Matplotlib模组(Module),如下范例第2行:

接下来,利用Pandas DataFrame的plot()绘图方法(Method),设定图表的标题、x、y轴说明文字、图例及大小,完成后,呼叫Matplotlib模组(Module)的show()方法(Method)来进行显示,如下范例:

执行结果

从执行结果可以看到中文字无法正常的显示,是因为没有设定字型的关系,这部分等一下会来和大家分享如何解决。

除此之外,Pandas套件的plot()绘图方法(Method)预设为折线图,如果想要绘制其它的图表,例如长条图,则可以设定kind关键字参数为bar,如下范例: