github如何计算某一天的“贡献度”

问题描述 投票:0回答:1

好吧,所以我正在尝试重新设计 Github 贡献图功能,并且我希望贡献的“级别”能够准确到 Github 的。我所说的级别是指方块的亮度(如果您处于黑暗模式)。 enter image description here

在这张图片中,您可以看到一天的水平较高,一天的水平较低。

对于初学者来说,该水平是相对于其他日期计算的,但目前尚不清楚该计算是如何完成的。在 Github Docs 上,它说该级别是根据当天所属的四分位数计算的。

我对统计不太了解,但是每个四分位数不应该有相等的天数吗?但是,如果您查看此贡献图,您可以清楚地看到较低级别的天数比较高级别的天数要多。 enter image description here

我有什么遗漏的吗?我对四分位数的理解有误吗?如有任何帮助,我们将不胜感激。

github statistics
1个回答
0
投票

当我尝试创建一个 GitHub Action/CLI 来在我的贡献图中绘制任意文本时,我也很困惑,并且我无法在网上找到任何内容(或在代码中,现有工具似乎无法找到任何内容)实际上理解计算并且在存在现有提交的情况下通常不会生成像素精确的图表)这说明了四分位数如何与正在绘制的内容兼容。正如您已经问过的,怎么可能超过四分之一的天被涂成单一颜色?

我对计算实际如何进行有一些想法,因此我编写了一些代码来查询 GitHub 用户贡献历史记录,然后根据我的模型绘制贡献图。然后,我根据 GitHub 实际呈现的用户贡献图抽查了输出。

根据我(有限的)实验,“四分位数”这个词有点误导(不确定是否有意),因为每日贡献均匀分为4组(每组包含约25%的数据点) 。相反,范围

(0, max_daily_contribution_count]
似乎被分为四个桶(每个桶的分布是
q = max_daily_contribution_count / 4
),其中每个桶可以包含任意数量的元素。然后,颜色由贡献计数所属的范围决定:
[[0], [1, q), [q, q*2), [q*2, q*3), [q*3, ∞]]
(最浅到最深)。

此评论还提到他们在计算“四分位数”之前删除了异常值,但我没有尝试确定如何进行。

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.