Matplotlib直方图的创建

  • 概念区分
  • 绘制直方图


概念区分

什么是直方图?

直方图(Histogram)又称质量分布图,是统计报告图的一种,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,纵轴表示数量或者占比。用直方图可以比较直观地看出产品质量特性的分布状态,便于判断其总体质量分布情况。直方图可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。

单从外表上看直方图和条形图非常相似,其实两者不一样。首先需要区分清楚概念:直方图和条形图。

条形图

Matplotlib直方图的创建_Python数据分析与可视化_数据可视化


直方图

Matplotlib直方图的创建_Python数据分析与可视化_数据分析_02

  • 条形图用长条形表示每一个类别,长条形的长度表示类别的频数,宽度表示表示类别。
  • 直方图是一种统计报告图,形式上也是一个个的长条形,但是直方图用长条形的面积表示频数,所以长条形的高度表示频数组距,宽度表示组距,其长度和宽度均有意义。当宽度相同时,一般就用长条形长度表示频数。

简单来说可以理解为:条形图的方块可以随意调换位置,而直方图不可以

绘制直方图

直方图一般用来描述等距数据。直观上,直方图各个长条形是衔接在一起的,表示数据间的数学关系。

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("频数/频率分布直方图")

Matplotlib直方图的创建_Python数据分析与可视化_数据分析_03

Matplotlib直方图的创建_Python数据分析与可视化_数据分析_04