matplotlib入门
1.matplotlib简介及导包
(1)简介
matplotlib比较流行的Python底层绘图库,主要做数据可视化图表。它的名字取材于MATLAB,它是模仿MATLAB构建的。
(2)导包
# 导入pyplot
from matplotlib import pyplot as plt
2.绘图常用的方法
(1)设置显示中文
设置中文的方式参考链接:matplotlib设置中文的的一种方式
(2)设置显示图片的大小
plt.figure()
常用参数及解读:
- figsize(x1,x2) 用于设置图片显示的大小,可选参数,单位为英寸,默认值为(6.4,4.8)。
- dpi=x3 用于设置图片的dpi,可选参数,默认值为100。
(3)设置x(y)轴刻度
plt.xticks() # 设置x轴刻度
plt.yticks() # 设置y轴刻度
常用参数及解读:
ticks=list1name labels=list2name
二者为一对参数,前面是一个array_like数据类型,后面是一个array_like数据类型,并且是可选的,存储的是字符串。两个参数的信息一一对应,即在x轴或者y轴对应的数字刻度上写字符串信息。location=x1
设置刻度的角度,x1代表的是角度。fontproperties=my_font
设置显示中文信息
(4)设置图形描述
plt.xlabel() # 设置x轴描述信息
plt.ylabel() # 设置y轴描述信息
plt.title() # 设置图片标题信息
常用参数及解读:
- "描述信息" 字符串类型的具体的描述信息
fontproperties=my_font
设置显示中文信息
(5)多个数据对比绘制
- 多次绘制图形即可。例如绘制折线图。调用两次plot方法即可。
(6)多个数据设置添加图例
- 在多次绘制图形的函数中添加label参数
- 调用
plt.legend()
方法
方法参数解读:
- prop=my_font 设置中文字体
- loc=x 设置图例显示的位置,常用可选的位置参数:
upper left
uuper right
best
(7)添加网格
plt.grid() # 绘制网格
常用参数解析:
- alpha=x 调整透明度
(8)展示
plt.show()
(9)保存
plt.savefig("./name.png")
./name.png
为图片保存的路径和图片保存的名称。
注意:可以保存为.svg格式,即矢量图格式,放大后不会有锯齿。
(10)设置图形的样式
在具体的绘制图形的方法中传入如下参数:
- 线条的样式:
线条格式可选项 | description |
---|---|
'-' | solid line style |
'--' | dashed line style |
'-.' | dash-dot line style |
':' | dotted line style |
- 线条的颜色
线条可选颜色 | color |
---|---|
'b' | blue |
'g' | green |
'r' | red |
'c' | cyan |
'm' | magenta |
'y' | yellow |
'k' | black |
'w' | white |
3.绘制折线图
(1)图形特点
特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)
(2)绘制方法
plt.plot(x,y)
4.绘制条形图
(1)图形特点
绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计)
(2)绘制方法
plt.bar(x,y) #绘制竖图
plt.barh(x,y) #绘制横图
(3)应用场景
- 统计频率
- 统计频数
5.绘制直方图
(1)图形特点
特点:绘制连续性的数据,展示一组或者多组数据的分布状况(统计)
(2)直方图中的一些概念
- 组距
每一组数据之间的距离。 - 组数
组数=极差/组距
极差=最大值-最小值
- 组距可以我们自己设定,极差要能够整除组距。
(3)绘制方法
matplotlib.hist(data,bins,normed)
参数解读:
- data 统计的数据
- bins 组数 可以传入一个列表,长度为组数,值为分组依据,当组距不均匀时使用这种方式。
- normed 是否进行频率统计,默认为否。这是一个可选参数。
- 可以通过高度或者宽度调整条形图的宽度。(在函数中传递width height参数 参数的总体参数应该小于1)。
(4)应用场景
没有统计过的数据,适合使用直方图进行展示,因为直方图可以进行分组。统计后的数据不适合使用直方图进行展示。
6.绘制散点图
(1)图形特点
判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
(2)绘制方法
plt.scatter(x,y)