Python数据分析8——Matplotlib基本绘图
目录
一.Matplotlib介绍安装
Matplotlib介绍
Matplotlib是一个Python的基本绘图库,它可以和Numpy一起使用。代替Matlab的一些功能。
作用
1.将数据进行可视化,使数据更直观;
2.使数据更加更具有说服力;
Matplotlib安装
由于Matplotlib是第三方库,所以我们需要安装它才可以使用。
安装命令:pip install matplotlib
二.使用Matplotlib绘制基本图形
1.折线图
折线图绘制
方法:plot()函数
plt.plot(x,y)——默认的线样式及颜色绘制x,y构建的图形
实例:
参数:
(1)color 设置线的颜色;
(2)linestyle 设置线的样式;
(3)marker 标记样式;
(4)markerfacecolor 标记样式的颜色;
(5)markersize 标记样式的大小;
样式表:
等......
实例:
折线图特点
能够显示数据的变化趋势,反应事物的变化情况。
2.plt基本方法——图形的基本设置
方法
方法 | 描述 |
plt.figure(figure=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轴的数值展示轴网络 |
实例:
中文显示问题及负数显示
当我们要设置轴标签,标题等,通常会使用中文,但是,我们的Matplotlib默认不会显示中文。
方法一:
import matplotlib
font = {
'family':'SimHei',
'weight':'bold',
'size':12
}
matplotlib.rc("font", **font)
方法二:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
方法三:
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
x = [1,2,3,4]
y = [3,2,1,3]
plt.plot(x,y)
plt.xlabel("x轴标签",fontproperties=font)
plt.show()
使用Jupyter的plt.show()不直接显示图像问题
当我们使用Jupyter来使用Matplotlib绘制图形时,一般会自动显示图形,但由于有些Python的版本问题,我们需要进行一些设置,否则会出现这样的情况:
在导包的时候引入配置项:
方法一:
import matplotlib
matplotlib.use('TkAgg') # 在一个新窗口打开图形
方法二:
%matplotlib inline # 推荐使用:正常显示
添加注释文本
plt.annotate() 基本使用
(1)text 要注释的文本;
(2)xy 需要注释点的坐标;
(3)xytext 注释文本的坐标;
(4)arrowprops 是箭头的样式属性;
实例:
3. 条形图
条形图绘制
方法:bar()函数;
plt.bar(x, height) # 绘制以x为x轴位置,height为y轴位置的竖型条形图;
实例:
plt.barh(y,width) # 绘制以y为y轴位置,weight为x轴位置的水平条形图;
实例:
条形图特点
(1)能够使人们一眼看出各个数据的大小;
(2)易于比较数据之间的区别;
4.饼图
饼图绘制
方法:pie()函数;
plt.axes(aspect='equal') # 保住饼图是圆 不是默认椭圆
plt.pie(x) # 绘制饼图
参数:
(1)x 饼图的数据;
(2)label 数据的标签名称;
(3)autopct 百分比数据标签;
(4)colors 设置自定义颜色;
(5)redius 设置饼图半径;
(6)center 设置原点;
(7)labeldistance 标签与圆心距离;
(8)textprops 设置文本标签的属性值;
(9)pctdistance 占比和图的距离;
(10)explode 设置分块突出某数据;
(11)shadow 设置阴影;
等......
plt.pie()有三个返回值
(1)patches 绘制饼图每一块的对象;
(2)texts 文本的列表;
(3)autotexts 百分比的文本列表;
实例:
饼图特点
通常用来描述量、频率和百分比之间的关系。在饼图中,每个扇区的弧长大小为其所表示的数量的比例。
5.直方图
直方图绘制
方法:hist()函数
plt.hist(x,bins=None) #绘制以x为数值,bins为组数
返回值:
(1) nums 每个区间值出现的个数
(2) bins 区间的值
(3)patches 每根柱子的对象
实例:
直方图特点
绘制连续性的数据,展示一组或多组数据的分布情况。
6.箱线图
绘制箱线图
方法:boxplot()函数;
plt.boxplot()
参数
(1)x:需要绘制的箱线图的数据;
(2)notch:是否展示置信区间 默认为False;
(3)sym:代表异常点的符号表示 默认为原点;
(4)vert:是否是垂直的 默认是True;
(5)whis:上下限系数 默认为1.5;
(6)positions:设置每个盒子的宽度;
(7)widths:设置每个盒子的宽度;
(8)labels:每个盒子的label;
(9)meanline和showmean:都为True的时候会展示平均线;
实例:
箱线图特点
箱线图是一种直观简洁的方式去呈现一组数据的分布。箱线图广泛用于各种数据分析领域,它能非常简单明了地显示一组数据中5个重要的数值,并且还能发现一组数据中存在的异常值。
7.散点图
散点图绘制
方法:scatter()函数;
plt.scatter(x,y) # 以默认的形状颜色等绘制散点图;
实例:
散点图特点
判断两变量之间是否存在某种关联或总结坐标点的分布模式,判断变量之间是否存在某种关联或总结坐标点的分布模式。
8.雷达图
绘制雷达图
方法:polar()函数;
绘制雷达图的参数与plt.plot()(折线图)非常相似,只不过是x轴的坐标点应该为弧度(2*PI=360度)。
实例:
注意:
(1)因为 polar 并不会完成线条闭合绘制,所以我们在绘制的时候需要在 theta 和 values 中最后多重复添加第0个位置的值,然后在绘制的时候就可以和第一个点进行闭合了。
(2)polar 只是绘制线条,所以想要把里面进行颜色填充,那么需要调用 fill 函数的实现。
(3)polar 默认的圆圈坐标是角度,如果我们想要改成文字显示,那么可以通过 xticks来设置。
雷达图特点
雷达图又被叫做蜘蛛网图,适用于显示三个或更多维度的变量的强弱情况。比如某个企业在哪些业务方面的投入等,都可以用雷达图方便的表示。