栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python数据分析6-matplotlib可视化

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python数据分析6-matplotlib可视化

       

目录

6.1线形图

6.1.1基本使用

6.1.2颜色与线条

6.1.3点标记

 6.2柱状图

6.2.1基本使用

6.2.2刻度于标签

6.2.3图例

 6.3其他图表

 6.3.1散点图

 6.3.2直方图

6.4自定义设置

6.4.1图表布局

6.4.2文本注解

6.4.3样式与字体

6.5综合示例--星巴克店铺数据 

6.5.1数据来源

6.5.2定义问题

6.5.3数据清洗

6.5.4数据探索


        数据可视化时数据分析中的一部分,可用于数据的探索和查找缺失值等,也是展现数据的重要手段。matplotlib是一个强大的工具箱,其完整的图标样式函数和个性化的自定义设置,可以满足几乎所有的2D和一些3D绘图的需求。本章节介绍了如何利用matplotlib绘制常用数据图表,如线形图、柱状图、散点图和直方图;还介绍了如何使用matplotlib的自定义设置绘制个性化图表;最后使用全球星巴克店铺的数据进行数据分析和可视化。

        6.1线形图

        线形图是最基本的图标类型,常用于绘制连续的数据。通过绘制线形图,可以表现出数据的一种趋势变化。例如,公司通过绘制每个月份的产品销售量趋势图,来分析产品的销售情况,以此做出销售方式的调整。

6.1.1基本使用

        matplotlib的plot函数可以用来绘制线形图,在参数中传入X轴和Y轴坐标即可。X轴和Y轴坐标的数据格式可以是列表、数组和Series。首先创建一个Dataframe数据,如下图

        然后让Dataframe数据的行索引作为X轴,math列索引作为Y轴,开始绘制线形图。

6.1.2颜色与线条

        通过plot函数的color参数可以指定线条颜色,这里绘制的是红色的线条,如下图

         也可以指定RGB值来更改线条的颜色,如下图

注:完整的参数列表可以参考matplotlib官方文档。

        通过plot函数的linestyle参数可以指定线条的形状,这里绘制出虚线的线条,如下图所示。

         通过plot函数的linewidth参数可以指定线条的宽度,如图所示

 6.1.3点标记

        默认情况下,坐标点是没有标记的,通过plot函数的marker参数可对坐标点进行标记。如图

         颜色、线条和点的样式可以一起放置于格式字符串中,但颜色设置要放在线条和点的样式前面如下图

 

 6.2柱状图

6.2.1基本使用

        绘制柱状图主要是使用matplotlib的bar函数。相比通过pandas绘制柱状图,通过matplotlib绘制柱状图的方法稍显复杂,需传入刻度列表和高度列表。如下图所示

        通过bar函数的color参数可以设置柱状图的填充颜色,alpha参数可以设置透明度,如下图所示

         grid函数用于绘制格网,通过对参数的个性化设置,可以绘制出个性的网格,如下图

        bar函数的bottom参数用于设置柱状图的高度,以此可以绘制堆积柱状图,如图所示

        bar函数的width参数用于设置柱状图的宽度,以此可以绘制并列柱状图,如图所示

 

        ba函数通过barh函数可以绘制水平柱状图,如图所示

 

6.2.2刻度于标签

        通过6.2.1节的例子可以看出,绘制的柱状图的X轴刻度上没有对应的刻度标签,但是现实中的柱状图的X轴是需要标签的。在matplotlib中,通过xticks函数可以设置图表的X轴刻度和刻度标签,通过以下代码可以实现绘制带有标签的柱状图。

 

 注:通过yticks函数可以修改Y轴的刻度和标签

        通过xlabel和ylabel方法给X轴和Y轴添加标签,通过title方法为图表添加标题,如图

 6.2.3图例

        图例是标识图表元素的重要工具。在bar函数中传入label参数可表明图例名称,通过legend函数即可绘制出图例。如下图所示

 

        下面通过消费数据,讲解如何在现实数据中绘制柱状图,如图所示。通过groupby函数可统计男女性别小费平均值,如图

        下面给出该Series的索引作为X轴刻度标签的代码,绘制柱状图如图

 6.3其他图表

 6.3.1散点图

        matplotlib的scatter函数可以用来绘制散点图,传入X和Y轴坐标即可,首先利用NumPy创建一组随机数据,如图

        也可以为三点更改颜色和点标记,如图

 

 6.3.2直方图

        matplotlib的hist函数可以用来绘制直方图,如图

6.4自定义设置

        由于matplotlib是最底层的绘图库,因此有很大的设置空间。本节将讲解如何通过matplotlib进行自定义绘图设置。

6.4.1图表布局

        matplotlib的图像位于Figure对象中。通过figure函数可以创建一个新的Figure,用于绘制图表,其中的figsize参数可以设置图表的长宽比。在创建Figure对象过程中,通过add_subplot函数创建子图,用于绘制图形,如下图

        这时通过选择不同的ax变量,便可在对应的subplot子图中绘图

         通过plt.subplot可以很轻松的创建子图,而且axes的索引类似于二维数组,这样便可以对指定的子图进行绘制

         默认情况下,各subplot子图间都会留有一定的间距,如图所示

        当没有设置figsize时,创建多个子图会显得拥挤。通过plt.subplots_adjust方法可以设置子图的间距,修改子图之间的间距,如下图,具体参数如下

subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)

        其中,前四个参数用于设置subplot子图的外围边距,wspace和hspace参数用于设置subplot子图间的边距.

6.4.2文本注解

        有时需要在图标上加上文本注解,例如,在柱状图上加入文本数字,可以很清楚的知道每个类别的数量。通过text函数可以在指定的坐标(x,y)上加入文本注解,如图所示

6.4.3样式与字体

        matplotlib自带了一些样式供用户使用,最常用的时ggplot样式,该样式是参考R语言中的ggplot库。通过plt.style.use('ggplot')函数即可调用该样式绘图,如图

        matplotlib默认为英文字体,如果会之中出现汉字就会发生乱码,所以需要matplotlib指定默认的字体,这样就可以解决中文乱码的问题。代码如下

plt.rcParams['font.sans-serif'] = ['simhei']  #指定默认字体
plt.rcParams['axes.unicode_minus'] = False     #解决保存图像时负号‘-’显示为方块的问题

plt.title('案例')

6.5综合示例--星巴克店铺数据 

        本节以kaggle官网中的星巴克店铺数据为例,利用pandas数据分析方法,通过matplotlib可视化手段,分析星巴克店铺分布情况。

6.5.1数据来源

        本例中使用的数据集可在kaggle网站上Starbucks Locations Worldwide | Kaggle下载,如图所示

 注:下载之前需要注册kaggle账号

        下载好之后通过pandas读取

         以上数据为kaggle官网上公开的星巴克在全球店铺的数据。数据的介绍信息可通过kaggle官网进行查看。如下图。选择Data标签后,可以查看数据,以及字段的解释性信息。这里主要的字段有:City为店铺所在城市:State/Province为店铺所在的州和省份;Country为店铺所在的国家。

6.5.2定义问题

        本次分析中,围绕星巴克店铺所在地提出几个问题;星巴克店铺在全球的分布情况,那些国家星巴克店铺较多;那些城市的星巴克店铺较多,星巴克店铺在我国的分布情况

6.5.3数据清洗

        针对City、State/Province和Country地区字段,查看是否有缺失值;

        可以看出City有15个缺失值,这里对这些缺失值进行查看,如下图,

        发现多维埃及(EG)国家,这里分析可能是没有统计到具体城市。为了样本的完整性,定义填充函数,用State/Province进行填充,

         然后查看Brand字段的唯一值,发现店铺并不只有星巴克,还有一些其他的店面,但这里是分析星巴克店铺的信息,所以需要先“清洗”数据,然后将清洗好的数据进行存储

 6.5.4数据探索

         通过简单统计可以看出,星巴克共有25249家分布,分布在73个国家或地区,5406个城市,如图

         对Countyr字段进行计数,筛选出前店铺数量排名前10的国家,如下图,从图中可知,美国位居榜首,中国次之

        通过下面的代码绘制柱状图,如图所示

        对City字段进行计数,筛选出店铺数量前10位的城市,如图所示,上海作为国际化大都市,星巴克店铺数量最多,多于排名第2的城市将近300家,而西雅图作为星巴克的总部城市,排名第10名。

注:途中Mexico City 指墨西哥的一些城市分布,数据集中将其算在一起了

        通过下面的代码绘制柱状图,如下图

         为了分析星巴克店铺在我国的分布情况,提取中国店铺数据单独存储,如图

        对City字段进行计数,筛选出星巴克中国店铺数据前10的城市,如图

         通过下面代码绘制柱状图

 

 

 

 

 

 

 

 


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号