gpt4 book ai didi

jquery - 使用 cal-heatmap jquery 实现 csv

转载 作者:行者123 更新时间:2023-12-01 06:48:33 24 4
gpt4 key购买 nike

我一直在尝试使用 cal-heatmap 和 csv 来显示数据。然而似乎没有什么可以让它发挥作用。控制台中没有错误。

校准热图:http://kamisama.github.io/cal-heatmap/有谁知道如何使其与 csv 文件一起使用吗?或者甚至有一个 csv 的例子?有没有人有任何可以轻松使用 Google Analytics 实现的替代方案?

代码:

<html>
<head>
<link rel="stylesheet" href="cal-heatmap.css" />
<script type="text/javascript" src="d3.v3.min.js"></script>
<script type="text/javascript" src="cal-heatmap.min.js"></script>
</head>
<body>
<div id="cal-heatmap"></div>
<script type="text/javascript">
var cal = new CalHeatMap();
cal.init({
data: "test.csv",
dataType: "csv",
start: new Date(2013, 0),
domain : "day",
subDomain : "hour",
itemName: ["visit", "visits"],
range : 12,
cellsize: 15,
cellpadding: 3,
cellradius: 5,
domainGutter: 15,
weekStartOnMonday: 0,
scale: [40, 60, 80, 100]
});
</script>

</body>
</html>

CSV 格式:

Hour,Visits
000000,53
000001,40
000002,58
000003,45
000004,35
000005,37
000006,41

最佳答案

是的,Cal-heatmap 只能理解 JSON 对象格式的数据。

但是,您可以将 dataType 设置为 csv,并使用 csv 解析器,如示例中所示。它不能开箱即用的原因是解析后,d3.csv() 返回的结果 JSON 对象确实有键,看起来像这样:

[
{
"Hour": 000000,
"Visits": 53
},
...
]

您需要将其转换回类似的内容:

{
"000000": 53,
...
}

使用以下函数作为您的 afterLoad() 回调:

function(data) {
"use strict";

var d = {};
var keys = Object.keys(data[0]);
var i, total;
for (i = 0, total = data.length; i < total; i++) {
d[data[i][keys[0]]] = parseInt(data[i][keys[1]], 10);
}
return d;
}

这将处理转换。仅当第一列是时间戳、第二列是值时,此函数才有效。如果您的 CSV 具有不同的结构,请根据您的需要调整 keys[n]

据我所知,Google Analytics 不使用时间戳,因此您必须在上面的函数中合并时间戳转换。

future 版本的 Cal-Heatmap 将自动执行此转换。

关于jquery - 使用 cal-heatmap jquery 实现 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18690593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com