在数组中使用带有数据维度的dc.js.

时间:2018-03-20 22:58:35

标签: d3.js dc.js

我有一个数组,每个节点都有以下数据

[{
    "id": "2130483",
    "appId": "SIGERprod",
    "time": 1500,
    "dateStart": 1521564131000,
    "timestamp": 1521564131000,
    "dateEnd": 1521564131000,
    "ipAddress": "10.110.11.111",
    "principalName": "suiza_2@hotmail.com",
    "contextPath": "/prueba",
    "ruta": "/prueba/xhtml/formasPreCodificadas/llenarForma.xhtml",
    "metodo": "POST",
    "status": 200,
    "year": 2018,
    "month": 3,
    "day": 20,
    "hour": 10,
    "minute": 42,
    "second": 11
}]

我有以下代码,此代码按日期分组我的请求

$.getJSON(prefix + "/getFullData.htm", {idApp: App, dateStart: inicio, dateEnd: fin},

        function (data) {
            data.forEach(function (d) {
                d.date = new Date(d.year, d.month, d.day, d.hour, d.minute, d.second, 0);

            });

            ndx = crossfilter(data);

            dateDimension = ndx.dimension(function (d) {
                return d.date;
            });

            var peticiones = dateDimension.group().reduceCount();
            var minDate = dateDimension.bottom(1)[0].date;
            var maxDate = dateDimension.top(1)[0].date;

            solicitudesXIntervalo
                    .width(1000)
                    .height(200)
                    .mouseZoomable(true)
                    .dimension(dateDimension)
                    .group(peticiones)                        
                    .x(d3.time.scale().domain([minDate, maxDate]))
                    .yAxisLabel("request grouped by second");

我得到以下

current output

我需要绘制每个请求所需的时间(时间与日期)

1 个答案:

答案 0 :(得分:0)

听起来您希望根据持续时间对请求进行求和,而不是仅计算。

如果这是你的意思,那就是一个简单的改变:

        var peticiones = dateDimension.group().reduceSum(function(d) {
            return (d.dateEnd - d.dateStart) / 1000;
        })

我除以1000得到秒而不是毫秒;根据需要调整。

但是,在上面的示例数据中,持续时间为0(并且根本不会显示)。所以我不确定我是否理解你的问题。如果我错过了商标,请评论和/或编辑您的问题。