Matplotlib直方图的创建
- 概念区分
- 绘制直方图
概念区分
什么是直方图?
直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。
单从外表上看直方图和条形图非常相似,其实两者不一样。首先需要区分清楚概念:直方图和条形图。
条形图
直方图
-
条形图用长条形表示每一个类别,长条形的长度表示类别的频数,宽度表示表示类别。
-
直方图是一种统计报告图,形式上也是一个个的长条形,但是直方图用长条形的面积表示频数,所以长条形的高度表示频数组距,宽度表示组距,其长度和宽度均有意义。当宽度相同时,一般就用长条形长度表示频数。
简单来说可以理解为:条形图的方块可以随意调换位置,而直方图不可以
绘制直方图
直方图一般用来描述等距数据。直观上,直方图各个长条形是衔接在一起的,表示数据间的数学关系。
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
# 设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
# 随机生成(10000,)服从正态分布的数据
data = np.random.randn(10000)
plt.hist(data,bins=30, normed=0, facecolor="red", alpha=0.7)
# 显示横轴标签
plt.xlabel("区间")
# 显示纵轴标签
plt.ylabel("频数/频率")
# 显示图标题
plt.title("频数/频率分布直方图")