Matplotlib之直方图绘制

1 直方图介绍

直方图由一系列高度不等的纵向条纹或线段表示数据分布情况,一般用横轴表示数据范围,纵轴表示分布情况。
特点: 绘制连续性的数据,展示一组或者多组数据的分布情况(统计)。
在这里插入图片描述

2 直方图绘制

直方图通过hist()函数绘制
• plt.hist(x, bins=None) # 绘制以x为数值,bins为组数,组数 = 极差/组距

示例:
某地区连续50年中四月份平均气温数据如下:
temp= [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]
根据以上数据,推断该地区四月份平均气温的分布类型。

解析:样本中最小值a=3.0,最大值b=9.7。则分布区间[3,10]等分为7个小区间,区间长度为1,以下为样本值在各小区间的频数与评率。

区间频数频率
[3,4]11/50
(4,5]66/50
(5,6]1111/50
(6,7]1515/50
(7,8]99/50
(8,9]66/50
(9,10]22/50

代码如下:

from matplotlib import pyplot as plt
import matplotlib
import matplotlib
font = {
    'family':'SimHei',
    'weight':'bold',
    'size':12
}
matplotlib.rc("font", **font)
temp= [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]
#plt.hist(temp_li) #如果用默认的组数 会出现数值范围对不齐的情况,bins默认为10

temp_max = max(temp)
temp_min = min(temp)
# 四舍五入,组数为7,组距为1
cha = round(temp_max-temp_min)
b = 1
temp_bins = int(cha/b)

#density的类型是 bool型,指定为True,则为频率直方图,反之,频数直方图
#plt.hist(temp_li,bins=bi) #频数直方图
plt.hist(temp,bins=temp_bins,density=True)  # 频率直方图
plt.xlabel("区间")
plt.ylabel("频数/频率")
plt.title("气温分布直方图")
plt.show()

效果图:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值