python数据分析及可视化(十)Matplotlib介绍(折线图、条形图、扇形图、直方图、箱型图、散点图)

Matplotlib

Matplotlib介绍

Matplotlib是一个Python的基础绘图库,是数据分析的可视化工具,使用方式比较灵活,它可与 NumPy 一起使用,代替Matlab使用。把数据读取出来,做清洗、数据规整,归根结底是把数据之间的关系通过图表的形式进行展现,使数据更加直观立体,使数据更加有说服力。比如说每个月的销售额是多少,不如直接用图表进行展示,不用呈现各种报表,通过图表从图表中发现数据的规律,机器学习中选择算法模型是通过图表进行选择,数据分布的规律适合哪种算法模型就可以通过图展示出来。比如公司的营业额和广告的投入有无直接的关系就可以通过图表显示出来。

Matplotlib安装

安装命令:pip install matplotlib

Matplotlib基本使用

画图表的时候要先有数据,如x轴对应1,2,3;y轴对应4,5,6,有了x和y轴的数据就可以建立直角坐标系,画出相应的做标轴。在pycham中使用时,需要加上plt.show()才能显示出图表。

折线图

plt.plot()函数传入制图数据,color,设置线的颜色; linestyle ,设置线的样式;marker,标记样式。

方法 描述
plt.figure(figsize=None,dpi=None) 生成新的图片,figsize:图片大小,dpi:透明度
plt.savefig(fname) 保存图片
plt.xticks(ticks=None) 设置x轴刻度的值
plt.yticks(ticks=None) 设置y轴刻度的值
plt.xlabel(xlabel) 设置x轴标签
plt.ylabel(ylabel) 设置y轴标签
plt.title() 设置图标题
plt.grid() 根据x轴和y轴的数值展示轴网格

解决中文显示的问题:

plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False   # 步骤二(解决坐标轴负数的负号显示问题)

添加注释文本
plt.annotate() 基本使用
● text 是注释的文本
● xy 是需要注释的点的坐标
● xytext 是注释文本的坐标
● arrowprops 是箭头的样式属性

绘图及颜色

通过Matplotlib画出的是折线图,点与点之间用线连接,线的颜色是蓝色的。
在这里插入图片描述
在这里插入图片描述

在一个图表中绘制多条折线时,要保证所有的代码在同一个代码块里,中间不掺杂其他的代码。线条的颜色可以用英文单词、单词的首字母、RGB、十六进制的形式表示。
如果在代码块里绘制多条折现,没有指定颜色的话,会为每条线自动分配颜色。
在这里插入图片描述
在这里插入图片描述

标题、坐标轴、刻度

绘图时还需要加上标题、坐标轴的名称、刻度标签等,比如x轴和y轴分别代表什么内容。添加标题用title,如果标题用汉字的时候,需要提前导入加载字体的代码。
在这里插入图片描述

数据点的形状、大小、颜色

如果绘图的时候只提供一组数据,会当作y轴的数据,默认会把每一个数据的下标作为x轴的数据。
在这里插入图片描述
marker参数指的是标记点(‘.’,‘*’,),不指定参数的话,点跟线融合在一起。markerfacecolor为标记点内部的填充颜色(k为黑色,r为红色),markersize为标记点的尺寸。
在这里插入图片描述
更改x轴的刻度,默认是数据的下标,改为列表推导式显示为每一天。
在这里插入图片描述

画布尺寸、网格背景

此时x轴的数据 发生重叠,可以把图拉长,或者把x轴内容的角度进行倾斜,添加x和y轴的标签,网格背景便于查找数据点对应的数值。
在这里插入图片描述

注释文本

当点比较密集的时候,就相当于是条直线,可以利用注释文本标记出线段的最大点。
添加注释文本时,shrink参数的取值范围是0-1,0-0.5之间箭头越来越小,0.6-1之间箭头往最大值处缩小。
在这里插入图片描述
在这里插入图片描述

风格设置、保存

markersize的值为负的时候,数据点的形状消失不可见,可以拉大画布,使用不同的主题风格,保存图片。
在这里插入图片描述

条形图

条形图是用宽度相同的条形的高度或长短来表示数据多少的图形。条形图可以横置或纵置,纵置时也称为柱形图。 能够使人们一眼看出各个数据的大小;易于比较数据之间的差别。
bar绘制条形图,width调整条形图柱子的宽度;alpha调整柱子的透明度,数字越小,柱子越虚。enumerate返回数据所在的索引和数据。
在这里插入图片描述
在这里插入图片描述
barh绘制横向条形图,height为调整宽度,x和y要进行互换。
在这里插入图片描述

例题

多个柱形图放在一个图表中,直方图是x轴是连续的区间
在这里插入图片描述

扇形图(饼图)

扇形图,用整个圆表示总数,用圆内各个扇形的大小表示各部分数量占总数的百分数。
● plt.pie(x, explode=None, labels=None)
○ x 扇形数据
○ explode 设置某几个分块是否要分离饼图
○ labels 每块扇形标签
○ autopct 百分比数据标签
○ shadow 是否显示阴影

● plt.pie()有3个返回值
○ patches 绘制饼图每一块的对象
○ texts 文本的列表
○ autotexts 百分比的文本列表
饼图用pie,默认的饼图是椭圆形的,需要加上代码plt.axes(aspect=‘equal’),保证输出是圆,而不是椭圆。
在这里插入图片描述

直方图

直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据范围,纵轴表示分布情况,是绘制连续性的数据,展示一组或者多组数据的分布情况(统计) 。
hist(x,bins=None)是直方图,x为数值,bins为组数,绘制连续型的数据,看一下数据的分布情况。bins分组,分成多少个区间。
在这里插入图片描述

箱型图

箱线图是一种直观简洁的方式去呈现一组数据的分布。 箱线图广泛用于各个数据分析领域,它能非常简单明了地显示一组数据中5个重要数值,并且还能发现一组数据中的存在的异常值。最大值 ;最小值;中位数;下四分位数(Q1);上四分位数(Q3)
plt.boxplot()
● x:需要绘制的箱型图的数据
● notch:是否展示置信区间 默认为False
● sym:代表异常点的符号表示 默认为圆点
● vert:是否是垂直的 默认是True
● whis:上下限系数 默认为1.5
● positions:设置每个盒子的位置
● widths:设置每个盒子的宽度
● labels:每个盒子的label
● meanline和showmean:都为True的时候 会展示平均线
在这里插入图片描述

如下图所示,在0-100内随机生成100个数据,增加了2个,绘制箱型图。从图中可以看出,最下方的1代表一组数据,数据的分布是0-100,上下线是100%和0%的位置,箱子的部分(25%-75%)是数据最集中的地方,箱子的上线是75%,下线是25%,箱子里的实线代表的是中位数50%,第51个数对应的位置;虚线表示的是平均值;最下方的值代表的是异常值,数据均是0-100,只有一个-100不符合数据分布的特点,是离群值。
在这里插入图片描述

散点图

散点图用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点。判断变量之间是否存在数量关联趋势,表示离群点(分布规律)。
散点图通过scatter()函数绘制
● plt.scatter(x,y) # 以默认的形状颜色等绘制散点图
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hwwaizs/article/details/127515594