You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询GitHub贡献图单日贡献等级计算规则及四分位数疑问

GitHub贡献图等级计算逻辑详解
  • 核心纠正:你对四分位数的基础理解没错,但GitHub的贡献等级划分不是按天数均分的四分位数分组,而是基于贡献值的数值分布区间来划分——这是导致低等级天数远多于高等级的关键原因。

  • 具体计算逻辑:

    1. 先筛选所有有贡献的日期的贡献数值(无贡献的日期直接归为最低等级,对应深色模式下最暗的方块)
    2. 将所有非零贡献值按从小到大排序,计算三个四分位数(Q1、Q2、Q3)——这里的四分位数是基于贡献值的数值分布计算,而非强制把天数分成四个等份
    3. 等级划分规则(对应深色模式下亮度从暗到亮):
      • 贡献值 = 0:等级1(最暗)
      • 0 < 贡献值 ≤ Q1:等级2
      • Q1 < 贡献值 ≤ Q2:等级3
      • Q2 < 贡献值 ≤ Q3:等级4
      • 贡献值 > Q3:等级5(最亮)
  • 为什么低等级天数更多?
    开发者的贡献值分布天然是右偏态的:大部分日期的贡献数很少(比如1-2次提交),只有少数日期会有大量贡献(比如发布版本、批量提交)。这种分布下,Q1、Q2甚至Q3可能都集中在较低的贡献值区间,导致大量天数落在低等级,而高等级只有少数贡献值极高的日期。

    举个简单例子:假设统计365天,其中200天贡献值为1,100天贡献值为3,50天贡献值为10,15天贡献值为30。排序后计算四分位数:

    • Q1是1(25%分位点落在贡献值1的区间)
    • Q2是1(50%分位点仍在贡献值1的区间)
    • Q3是3(75%分位点落在贡献值3的区间)
      对应的等级分布:
    • 等级1(0贡献):假设0天
    • 等级2(≤1):200天
    • 等级3(1<≤1):0天(因Q2=Q1,无中间区间)
    • 等级4(1<≤3):100天
    • 等级5(>3):65天
      显然低等级(等级2)的天数远多于高等级(等级5),完全符合GitHub贡献图的实际表现。
  • 额外细节:GitHub会避免将相同贡献值的日期拆分到不同等级,如果某个贡献值恰好跨越四分位数,所有该贡献值的日期会被归到同一个等级,这也会进一步加剧各等级的天数不均等。

内容的提问来源于stack exchange,提问作者malbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:30:44