我正在尝试从此link投射calendar-heatmap
。
我搜遍了整个文档但我找不到data-format
的任何示例文件。
这是文档的link,但没有示例文件。
在文档中,我发现导入的数据为datas-years.json
。但我对格式如何没有任何线索。有人请帮帮我。
答案 0 :(得分:3)
Cal-Heatmap期望JSON对象中的数据采用以下格式:
{
"timestamp1": value1,
"timestamp2": value2,
"timestamp3": value3,
...
}
值可以是任何数字(整数或浮点数)。
所有时间戳都以秒为单位。秒数是“UTC秒”(有时也称为“纪元秒”或“unix秒”),作为自提供的GMT日期/时间的01-01-1970 00:00:00以来的秒数。这是UTC second calculator。
今天我们在1.388.000.000 UTC秒左右。该站点上的示例显示了2000年的数据,这就是您在JSON文件示例中看到的UTC秒数大约为946.000.000的原因。
好消息是,您可以在互联网上轻松找到如何从其他时间格式获取UTC秒数,而且您将能够创建Cal-Heatmap期望的数据文件。 :)
答案 1 :(得分:1)
这是一个随机测试程序,用于随机生成json文件。
场景:显示提交12个月,包括当月。如果您已定义开始 - >将它指向当前月份之前的11个月,json文件应该可以正常工作。
var data = generateRandomData();
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function generateRandomData(){
var date = new Date();
var mind = date.valueOf();
var maxd = date.setMonth(date.getMonth() - 11);
var mins = 0;
var maxs = 40;
var retobj = {};
for(var i=0;i<100;i++){
retobj[getRandomInt(mind,maxd)/1000] = getRandomInt(mins,maxs);
}
return retobj;
}
答案 2 :(得分:0)
Cal-heatmap需要JSON格式的数据
{
"timestamp1": value1,
"timestamp2": value2,
"timestamp3": value3,
...
}
如前所述,时间戳应始终以秒为单位,而不是以毫秒为单位(默认为javascript)。
您要么将数据放在文件中,然后在data
选项中传递该文件,要么直接传递javascript变量:
var d = {946705035: 25};
var cal = new CalHeatMap();
cal.init({data: d}); // For variable
cal.init({data: "path/to/file.json"}) // For file, or URI
Cal-heatmap还可以理解CSV和TSV中的文件。
如果cal-heatmap没有/无法理解您的数据:
将您的数据在javascript中转换为JSON对象,然后再将其传递给Cal-heatmap
设置右datatype
,然后使用after afterLoadData()
回调来读取文件并将文本转换为json对象。
datatype
指定用于读取文件的解析器引擎。如果您的文件是json,csv或tsv格式化,请将其设置为json
等...否则,将其设置为txt
以将文件作为纯文本读取。
您可以研究Google Analytics示例,它说明了data
,datatype
和afterLoadData()
回调的使用。
答案 3 :(得分:-1)
您可以直接检索JSON文件并在http://kamisama.github.io/cal-heatmap/datas-years.json检查它。