首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用cal-heatmap jquery实现csv

用cal-heatmap jquery实现csv
EN

Stack Overflow用户
提问于 2013-09-09 02:04:28
回答 2查看 1.3K关注 0票数 1

我一直试图使用cal热图和csv来显示数据.然而,似乎没有什么能使它发挥作用。控制台中没有错误。

cal:http://kamisama.github.io/cal-heatmap/,有人知道如何使用csv文件吗?或者有个csv的例子?有没有人有任何的替代方案是很容易实现的谷歌分析?

代码:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
Hour,Visits
000000,53
000001,40
000002,58
000003,45
000004,35
000005,37
000006,41
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-15 22:51:24

是的,Cal只理解像JSON对象那样格式化的数据。

但是,您可以将dataType设置为csv,并使用csv解析器,如您的示例所示。它不能正常工作的原因是在解析之后,d3.csv()返回的JSON对象确实有键,如下所示:

代码语言:javascript
复制
[
    {
        "Hour": 000000,
        "Visits": 53
    },
    ...
]

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

代码语言:javascript
复制
{
    "000000": 53,
    ...
}

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

代码语言:javascript
复制
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]以满足您的需要。

AFAIK,Google不使用时间戳,所以您必须将时间戳转换合并到上面的函数中。

Cal的未来版本将自动完成此转换。

票数 4
EN

Stack Overflow用户

发布于 2013-09-09 08:32:32

来自热图站点

Cal只理解在JSON对象中格式化的数据,如

但是,您可以使用d3的d3.csv函数将您的csv数据导入到您需要的格式中(尽管我还没有对此进行测试)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18690593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档