我试图了解github贡献数据,以及它们显示数据的方式。我创建了一个愚蠢的两步流程来“绘制”贡献(which can be found here)
我刚刚意识到,每天的“体重”是相对于一年中其他时间的,而不是固定的。因此,我想做两个额外的功能。
扁平化
记录你的公共贡献历史,并根据需要创建承诺,这样一年中每天都有相同的数额。为了让这个有效,我需要:
ajax从我自己的服务器请求数据(因为它们不允许xss)
从那里,请求https://github.com/users/%s/contributions_calendar_data(example)
每天做出足够的承诺,使之达到一年中最高的公共活动水平
选择一种颜色
在压平的基础上,我想提供选择颜色的功能(github的一种色调可以描绘您的日常活动)。这就是我不知道该怎么办的地方。
如果不先“扁平化”提交活动,我就不会提供这些功能,因为这看起来更令人望而生畏。但是,我的问题是:
给定一个提交活动历史记录,其中每一天都有t个提交,需要多少个提交才能实现每个色调“层”?
引入新提交时,这些值如何更改?
例如,假设我将提交历史展平为每天85次提交,那么每种颜色需要多少次提交?如果我包含更多的级别,这些会有所不同吗?
如果“基本级别”是400,而不是85,这将如何影响提交历史记录?
作为参考,我正在做实验。它基本上是一个让您“绘制”的web界面,以及一个获取ui的json输出并为您生成一堆空提交的cli。
不用说,我对统计数字了解不多。

最佳答案

好问题!
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询问他们的算法,他们回答说:
我们无法共享颜色的精确计算方式(我们会不时调整),但这是基于将特定日期的贡献计数映射为基于全年贡献计数分布的颜色(每个范围都指定了特定颜色)。
所以,简言之,正如您所注意到的,有五个级别,并且根据每天完成的提交数量,数据被规范化为具有不同的级别,其背后的算法会不时地改变。
例如,假设我将提交历史展平为每天85次提交,那么每种颜色需要多少次提交?
从我的测试来看,只有一个。
如果我包含更多的级别,这些会有所不同吗?
是的,但老实说,你应该试试。:D
如果“基本级别”是400,而不是85,这将如何影响提交历史记录?
我几乎可以肯定,在这种情况下,只有当你想要一个以上的级别时,差异才会显著。如果你所有的日子都有400英镑,除了一天你有401英镑,我想那一天会比其他的日子更黑暗。
也许让用户决定一天要创建多少个提交会更好。:)
github-contributions是一个由我创建的项目,它做相关的事情(在贡献日历上绘制/创建文本)。

08-27 11:37