微信公众号:yale记 关注可了解更多的教程。问题或建议,请公众号留言;
今天我们将学习如何在Matplotlib中创建直方图。直方图非常适合将数据分成到多个箱子中,并根据这些个箱子查看数据的位置。 可以理解直方图为倾向于通过将段分组在一起来显示分布。例如可能是年龄组,或测试分数。可能你只是展示20-25岁,25-30岁......等等,而不是展示一个群体的每个年龄段。让我们开始吧......
接下来看一个例子:读取一个data.csv文件内容为统计不同年龄段的所有所有受访人的人数信息分布,并指定一个中年年龄为29的位置进行显示,csv文件内容大致如下共计79211条数据:
上图配错了,具体代码如下:
import pandas as pd
from matplotlib import pyplot as plt
from matplotlib import rcParams
#设置图表字体,防止中文乱码
rcParams['font.family'] = 'Microsoft YaHei'
rcParams['font.sans-serif'] = 'Microsoft YaHei'
#图表样式
plt.style.use('fivethirtyeight')
#读取数据
data = pd.read_csv('data.csv')
ids = data['Responder_id']
ages = data['Age']
#定义箱子分段列表
bins = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
#构造直方图
#每个箱子之间连接的边颜色
#y轴人数显示log
plt.hist(ages,bins,edgecolor='white',log=True)
#定义中年年龄
median_age = 29
color = '#fc4f30'
#axvline()在轴上添加垂直线。
plt.axvline(median_age, color=color,
label='中年年龄', linewidth=2)
plt.legend()
plt.title('受访者年龄分布')
plt.xlabel('年龄')
plt.ylabel('受访者总人数')
plt.tight_layout()
plt.show()
运行结果: