Seaborn histplot():创建直方图(附带实例)
在 Seaborn 中可以使用 histplot() 函数创建直方图。直方图又称为质量分布图,主要用于展示数据在各个区间的分布情况。
直方图的外观与柱形图非常相似,但是它们存在以下几个区别:
分析下面的代码:

图 1 自动分组的直方图
根据数据中的最小值和最大值,自动将所有数据划分为 5 个区间,并统计每个区间的数据个数。

图 2 手动分组的直方图
直方图的外观与柱形图非常相似,但是它们存在以下几个区别:
- 直方图中的柱形表示数据在各个区间出现的次数,柱形图中的柱形表示数据的大小;
- 直方图中所有柱形之间是紧密相连的,它们之间没有空隙。柱形图中所有柱形之间都存在空隙;
- 直方图表示连续型数据,柱形图表示离散型数据。
创建自动分组的直方图
使用 histplot() 函数创建直方图时,Seaborn 会自动对数据进行分组,并统计各个区间的数据个数。为 histplot() 函数指定 bins 参数,并将其值设置为一个整数时,表示为数据划分的区间数量,每个区间的左右边界由 Seaborn 自动确定。分析下面的代码:
import matplotlib.pyplot as plt import seaborn as sns x = [1, 3, 10, 12, 16, 25, 27, 31, 33, 36, 45, 52, 56] sns.histplot(x=x, bins=5) plt.show()程序将创建如下图所示的直方图:

图 1 自动分组的直方图
根据数据中的最小值和最大值,自动将所有数据划分为 5 个区间,并统计每个区间的数据个数。
创建手动分组的直方图
为了获得更准确的区间,通常需要手动分组,只需将表示每个区间边界的值以列表的形式设置给 bins 参数,Seaborn 就会自动创建各个区间:import matplotlib.pyplot as plt import seaborn as sns x = [1, 3, 10, 12, 16, 25, 27, 31, 33, 36, 45, 52, 56] bins = [0, 10, 20, 30, 40, 50, 60] sns.histplot(x=x, bins=bins) plt.show()效果如下图所示:

图 2 手动分组的直方图