直方图

Python
可视化
作者

yangjh

发布日期

November 27, 2022

直方图(histogram)以矩形的面积表示每组数值的次数或百分比,是一种对数据分布情况的二维统计图表。直方图的两个坐标分别是统计样本和该样本对应的某个属性的度量,以长条(bar)的形式具体表現。直方图的长度及宽度可以表示数量上的变化,所以直方图可用于解读数值之间的差异。这一术语由英国统计学家卡尔·皮尔逊于1895年创立。

绘制要点

  1. 要绘制直方图,首先需要确定组距范围(bin),即将整个值范围划分为一系列区间,然后计算每个区间中有多少值。bin值通常指定为变量的连续、非重叠间隔。条柱(间隔)必须相邻,并且通常(但不要求)大小相等。
  2. 将数据按照bin值范围分组后,在x轴上用矩形的宽度表示组距,在y轴上用矩形的高度表示这个组中的频数或密度,多个矩形并列在一起就是直方图。

适用数据类型

数值变量

用途

  1. 利用直方图的形状,可以观察数据分布的特征。如观察变量分布是否符合正态分布,分布的峰度、偏度等。
  2. 观察数据中的极端值。

案例

直方图有时会与条形图混淆。直方图用于连续数值变量的描述统计,其中条柱表示数据范围,而条形图是分类变量图。一些作者建议条形图在矩形之间留有间隙以阐明区别。

使用 Plotly 绘制直方图

基础直方图

默认情况下,使用组距中的频次作为矩形的高度。

import plotly.express as px
df = px.data.tips()
fig = px.histogram(df, x="total_bill")
fig.show()

还可以指定以百分比作为矩形的高度。通过参数histnorm指定。

df = px.data.tips()
fig = px.histogram(df, x="total_bill", histnorm='probability density')
fig.show()

设置直方图组距

在 Plotly Express 中设置直方图的组距(也称为 bin size),可以通过 nbins 参数或者更详细的 histfuncbarmode 参数来实现。nbins 指定了直方图中 bin(箱子)的数量,而 histfuncbarmode 提供了关于如何计算和显示直方图的更多控制。

fig = px.histogram(df, x="total_bill", nbins=10)
fig.show()

参考文献

  1. 直方图 - AntV (alipay.com)
  2. plotly.express.histogram — 5.11.0 documentation
回到顶部