GitHub贡献直方图

时间:2013-10-31 16:42:43

标签: git github histogram

我正在尝试了解GitHub贡献数据及其显示方式。我创建了一个愚蠢的两步流程来“绘制”贡献(which can be found here)

我刚刚意识到每天的“体重”是相对于一年中的其他时间而不是固定的。因此,我想做两个额外的功能。

平铺

根据需要记录您的公开贡献历史记录并创建提交,以便每年的每天都有相同的金额。为此,我需要:

  • AJAX从我自己的服务器请求数据(因为他们不允许使用XSS)
  • 从那里,请求https://github.com/users/%s/contributions_calendar_data (example)
  • 每天创建足够的提交以等于当年的最高公共活动

选择颜色

除了扁平化之外,我还想提供一种颜色选择(绿色GitHub的一种色调描绘你的日常活动)。这是我不知道该怎么做的地方。

我不会在没有首先“扁平化”提交活动的情况下提供功能,因为这似乎更令人生畏。但是,我的问题是:

  • 根据提交活动历史记录,每天都有 T 提交,需要多少次提交 才能实现每个色调“级别”?
  • 引入新提交时这些值如何变化?

例如,假设我将提交历史记录平均为每天85次提交,每种颜色需要多少次提交?如果我包含更多级别,这些会有所不同吗?

如果“基本级别”是400而不是85,那将如何影响提交历史记录?

供参考,this is the repo我正在进行实验。它基本上是一个让你“绘制”的Web界面,以及一个获取UI的JSON输出并为你生成一堆空提交的CLI。

毋庸置疑,我对统计数据知之甚少。

1 个答案:

答案 0 :(得分:0)

很棒的问题!

  

AJAX从我自己的服务器请求数据(因为它们不允许XSS)

要获得公开贡献,您可以使用下面的ghcal

var GhCal = require("ghcal");

GhCal("bevacqua", function (err, data) {
    console.log(err || data);
});

这将在回调中为您提供如下输出:

[..., ["2015-04-26", 22], ...]
  

如果提交活动历史记录中每天都有 T 提交,那么实现每个色调“层”需要多少次提交?

从我的测试中,如果每一天都有相同数量的提交(T),那么为了让一天更暗,你只需再添加一个提交(这意味着T + 1那天)。

创建git-stats时,我遇到了同样的问题。这是如何工作的确切规则是不公开的。我通过电子邮件向GitHub询问了他们的算法,他们回复说:

  

我们无法分享颜色的精确计算方式(我们会不时对其进行调整),但它基于将特定日期的贡献计数映射到基于整体贡献计数分布的颜色年(每个范围都分配了一种特定的颜色)。

因此,简而言之,正如您所注意到的,有五个级别,并且数据被标准化为具有不同的级别,具体取决于每天执行的提交数量,并且此后的算法会不时地更改 / em>的

  

例如,假设我将提交历史记录平均为每天85次提交,每种颜色需要多少次提交?

从我的测试中,只有一个。

  

如果我包含更多关卡,这些会有所不同吗?

是的,但老实说,你应该尝试一下。 :D

  

如果“基本级别”是400而不是85,那将如何影响提交历史记录?

我几乎可以肯定,在这种情况下,只有当你想拥有多个级别时,差异才会显着。如果你有400天,除了你有401的那一天,我猜那天会比其他人更暗。

可能最好让用户决定他想要创建一天的提交数量。 :)

github-contributions是由我创建的项目,它执行相关的事情(在贡献日历上绘制/创建文本)。