首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用AngularJS D3图实现n3可视化

用AngularJS D3图实现n3可视化
EN

Stack Overflow用户
提问于 2013-10-23 19:16:37
回答 2查看 3.7K关注 0票数 1

我正在创建一个图表,它从服务器获取分页数据,然后使用D3库和n3 -图表库(http://n3-charts.github.io/line-chart/#/examples)绘制一个图表。我遇到的问题是,我的服务器正在返回一个PHP W3C格式的日期,该日期的角可以处理和使用筛选器,但是n3图表库无法处理这种格式。对于如何将日期字符串转换为date对象,我尝试了几种不同的想法,但没有效果。

是否有人使用d3库创建了温度与时间图,或者使用n3图表来实现此工作?对于这种类型的图形是否有更好的选择?我只是从这方面开始,因为最近的ng时事通讯和指令示例文章。

下面是我当前的ctrl代码:

代码语言:javascript
复制
var successCb = function(result) {
        result.forEach(function(val, index, theArray) {
            $scope.readings.push(val);
        });
    }
    var errorCb = function(data) {
        console.log('Failed');
    }
    for (var i = 1; i <= 5; i++) {
        Reading.getAll({limit: 1000, page: i}, successCb, errorCb);
    }
    $scope.options = {
        axes: {
            x: {type: "date", key: "_Time"},
            y: {type: "linear"}
        },
        series: [
            {y: "_degreeF", label: "Temp over Time", color: "#9467bd"}
        ],
        lineMode: "linear",
        tooltipMode: "default"
    };

数据示例如下所示:

代码语言:javascript
复制
$scope.data = [
{
    "_ID":1,
    "_time":"2013-10-21T16:46:5905:00",
    "_degreeF":69.58,
    "_degreeC":20.88,
    "_sensor":
        {
        "_ID":2,
        "_name":"Test Sensor 2",
        "_sensorID":"28-00000505f8b6"
        }
},
{
    "_ID":2,
    "_time":"2013-10-21T16:47:01-05:00",
    "_degreeF":69.58,
    "_degreeC":20.88,
    "_sensor":
        {
        "_ID":2,
        "_name":"Test Sensor 2",
        "_sensorID":"28-00000505f8b6"
        }
}
]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-24 18:02:14

您可以使用d3时间格式( d3.time.format )将您的日期解析为JS对象。

下面是一个d3js温度线图:

http://vida.io/documents/QZZTrhk7SmfChczYp

具有日期解析功能:

代码语言:javascript
复制
d3.time.format("%Y-%m-%d").parse
票数 2
EN

Stack Overflow用户

发布于 2013-10-25 09:20:49

是的,那是因为n3图表适用于本机日期对象。您可能希望从后端返回时间戳,然后将它们转换为successCb函数中的Date对象。

代码语言:javascript
复制
var successCb = function(result) {
    $scope.readings = result.map(function(r) {
        // Assuming there's a timestamp in the _time key
        r.date = new Date(r._time);
        return r;
    });
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19550482

复制
相关文章

相似问题

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