Matplotlib绘图_03
1.直方图
直方图介绍:直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据范围,纵轴表示分布情况。
直方图特点:绘制连续性的数据,展示一组或者多组数据的分布情况(统计)。
- plt.hist(x, bins=None):绘制以x为数值,bins为组数的直方图
组数 = 极差/组距
举个例子:某地区连续50年中四月份平均气温数据如下:
temp_li=[6.9,4.1,6.6,5.2,6.4,7.9,8.6,3.0,4.4,6.7,7.1,4.7,9.1,6.8,8.6,5.2,5.8,7.9,5.6,8.8,8.1,5.7,8.4,4.1,6.4,6.2,5.2,6.8,5.6,5.6,6.8,8.2,6.4,4.8,6.9,7.1,9.7,6.4,7.3,6.8,7.1,4.8,5.8,6.5,5.9,7.3,5.5,7.4,6.2,7.7]
根据以上数据,推断该地区四月份平均气温的分布类型。
from matplotlib import pyplot as plt
import matplotlib
font = {
'family':'SimHei',
'weight':'bold',
'size':12
}
matplotlib.rc("font", **font)
# plt.figure(figsize=(10,5))
temp_li=[6.9,4.1,6.6,5.2,6.4,7.9,8.6,3.0,4.4,6.7,7.1,4.7,9.1,6.8,8.6,5.2,5.8,7.9,5.6,8.8,8.1,5.7,8.4,4.1,6.4,6.2,5.2,6.8,5.6,5.6,6.8,8.2,6.4,4.8,6.9,7.1,9.7,6.4,7.3,6.8,7.1,4.8,5.8,6.5,5.9,7.3,5.5,7.4,6.2,7.7]
# min(temp_li) # 3.0
# max(temp_li) # 9.7
cha = max(temp_li)-min(temp_li)
b = 1
# bi = round(cha)/b # 去查一下python当中的四舍五入
# bi # 7.0 TypeError: `bins` must be an integer, a string, or an array
# 方法一:int()
# 方法二:整除//
bi = round(cha)//b # 去查一下python当中的四舍五入
# 求组数 组数=极差/组距
plt.hist(temp_li,bins=bi,density=True) # 注意:bins一定是整数类型,默认为10 density表示频率
# 显示标签
plt.xlabel("区间")
plt.ylabel("频数/频率")
plt.title("直方图")
plt.show()
2.扇形图
扇形图介绍:扇形图,用整个圆表示总数,用圆内各个扇形的大小表示各部分数量占总数的百分数。
- plt.pie(x,explode=None,labels=None ):绘制扇形图
(1)x 扇形数据
(2)explode 设置某几个分块是否要分离饼图
(3)labels 每块扇形标签
(4)autopct 百分比数据标签
(5)shadow 是否显示阴影
注意:plt.pie()有三个返回值
(1)patches 绘制饼图每一块的对象
(2)texts 文本的列表
(3)autotexts 百分比的文本列表
举个例子:将以下frac数据绘制扇形图,并且设置其扇形标签为label
frac = [1/50,6/50,11/50,15/50,9/50,6/50,2/50]
label = [’[3,4]’,’(4,5]’,’(5,6]’,’(6,7]’,’(7,8]’,’(8,9]’,’(9,10]’]
from matplotlib import pyplot as plt
import matplotlib
font = {
'family':'SimHei',
'weight':'bold',
'size':12
}
matplotlib.rc("font", **font)
frac = [1/50,6/50,11/50,15/50,9/50,6/50,2/50]
label = ['[3,4]','(4,5]','(5,6]','(6,7]','(7,8]'