GitHub 贡献直方图

3
我正在尝试理解GitHub的贡献数据及其展示方式。我创建了一个简单的2步过程来在贡献上“绘制”(可在此处找到)
我刚刚意识到每天的“权重”相对于全年而言是可变的,而不是固定的。因此,我想要进行两个额外的函数。

平坦化

获取您的公共贡献历史记录,并根据需要创建提交,以便每天在一年中有相同数量的提交。为了使其正常工作,我需要:
  • 从自己的服务器发起AJAX请求(因为它们不允许XSS)
  • 从那里请求https://github.com/users/%s/contributions_calendar_data(示例)
  • 每天创建足够的提交,以等于全年最高的公共活动

选择颜色

除了平铺之外,我想提供选择颜色的功能(GitHub用于绘制您每日活动的绿色阴影之一)。在这一点上,我不知道该怎么做。
在“平铺”提交活动之前,我不会提供此功能,因为那似乎更加令人生畏。但是,我的问题是:
- 在提交活动历史记录中,每天都有T个提交,需要多少次提交才能实现每个色调“层级”? - 引入新提交时,这些值会如何变化?
例如,如果我将提交历史记录平铺为每天85个提交,则每种颜色需要多少个提交?如果包括更多级别,这些值是否会有所不同?
如果“基本水平”为400而不是85,那么它将如何影响提交历史记录?
供参考,this is the repo 我正在进行实验。它基本上是一个Web界面,可以让您“绘图”,以及一个CLI,可以接受UI的JSON输出并为您生成一堆空提交。

毫无疑问,我对统计学知之甚少。

1个回答

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个提交)。
在创建{{link1:git-stats}}时,我也有同样的问题。这个工作的确切规则是不公开的。我给GitHub发了电子邮件询问他们的算法,他们回复说:
“我们不能分享颜色如何计算的详细信息(我们会不时地进行调整),但它基于将特定日期的贡献计数映射到基于整个年度贡献计数分布的颜色上(每个范围分配一个特定的颜色)。 ”
因此,简而言之,正如您注意到的那样,有五个级别,并且数据被归一化为具有不同级别,具体取决于每天完成的提交数量,并且支撑这背后的算法会不时地更改。
例如,假设我将提交历史记录压缩为每天85个提交,那么每种颜色需要多少次提交?
根据我的测试,只需要再多一个。
如果我添加更多级别,结果会有所不同吗?
是的,但说实话,你应该试一试。:D
如果“基本级别”是400,而不是85,这会对提交历史记录产生什么影响?
我几乎可以确定,在这种情况下,只有当你想要多个级别时才会有显著差异。如果你所有的日子都是400,除了其中一个是401,我猜那一天会比其他日子更暗。
也许最好让用户自己决定每天要创建多少个提交。 :) github-contributions 是由我创建的项目,它可以在贡献日历上绘制/创建文本等相关操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接