微信公众号:yale记
关注可了解更多的教程。问题或建议,请公众号留言;
背景介绍
今天我们将学习如何在Matplotlib中创建直方图。直方图非常适合将数据分成到多个箱子中,并根据这些个箱子查看数据的位置。 可以理解直方图为倾向于通过将段分组在一起来显示分布。例如可能是年龄组,或测试分数。可能你只是展示20-25岁,25-30岁......等等,而不是展示一个群体的每个年龄段。让我们开始吧......
![455dd10d11cc791152cfbb429b987171.png](https://img-blog.csdnimg.cn/img_convert/455dd10d11cc791152cfbb429b987171.png)
入门实例
接下来看一个例子:读取一个data.csv文件内容为统计不同年龄段的所有受访人的人数信息分布,并指定一个中年年龄为29的位置进行显示,csv文件内容大致如下共计79211条数据:
![04f831793448f4b7792a491c731f24a5.png](https://img-blog.csdnimg.cn/img_convert/04f831793448f4b7792a491c731f24a5.png)
具体代码如下:
import pandas as pdfrom matplotlib import pyplot as pltfrom 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轴人数显示logplt.hist(ages,bins,edgecolor='white',log=True)#定义中年年龄median_age = 29color = '#fc4f30'#axvline()在轴上添加垂直线。plt.axvline(median_age, color=color, label='中年年龄', linewidth=2)plt.legend()plt.title('受访者年龄分布')plt.xlabel('年龄')plt.ylabel('受访者总人数')plt.tight_layout()plt.show()
运行结果:
![455dd10d11cc791152cfbb429b987171.png](https://img-blog.csdnimg.cn/img_convert/455dd10d11cc791152cfbb429b987171.png)
关注公号
下面的是我的公众号二维码图片,欢迎关注。
![475726b0a031faefcea1273a6c04e709.png](https://img-blog.csdnimg.cn/img_convert/475726b0a031faefcea1273a6c04e709.png)
图注:yale记公众号