Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript dc.js维度组排序_Javascript_Dc.js_Crossfilter - Fatal编程技术网

Javascript dc.js维度组排序

Javascript dc.js维度组排序,javascript,dc.js,crossfilter,Javascript,Dc.js,Crossfilter,我正在尝试渲染一个dc.js条形图,其中y轴是百分比0-100%,x轴是数字,但是我想按日期排序x轴 我的数据如下所示: date,trend,percent 01/01/2014 13:00,238,53.6 01/01/2014 13:15,239,64.2 01/01/2014 13:30,219,43.1 01/01/2014 13:45,219.2,43.1 01/01/2014 14:00,237.4,50.6 ... 我正在将数据添加到交叉过滤器 data.forEach(fun

我正在尝试渲染一个dc.js条形图,其中y轴是百分比0-100%,x轴是数字,但是我想按日期排序x轴

我的数据如下所示:

date,trend,percent
01/01/2014 13:00,238,53.6
01/01/2014 13:15,239,64.2
01/01/2014 13:30,219,43.1
01/01/2014 13:45,219.2,43.1
01/01/2014 14:00,237.4,50.6
...
我正在将数据添加到交叉过滤器

data.forEach(function (d) { d.date = parseDate(d.date); });

var ndx = crossfilter(data);

var trendDimension = ndx.dimension(function (d) { return d.trend; });
var trendGroup = trendDimension.group().reduce(
  function (p, v) {
    p.time = v.date.getTime();
    p.trend = +v.trend;
    p.percent = +v.percent;
    return p;
  },
  ...
).order(function (p) { return p.time; }); // ??? order by time rather than trend
当我绘制维度和组时,我的x轴按趋势排序,因为我的x域如下所示:

var minTrend = trendDimension.bottom(1)[0].trend;
var maxTrend = trendDimension.top(1)[0].trend;

...
chart.x(d3.scale.linear().domain([minTrend, maxTrend]);
...
chart.render();
所有内容都会绘图,但条形图是按趋势排序的,我希望它们按日期/时间排序

这可能吗

编辑

我还尝试:

chart.ordering(function (d) { return d.value.time; });

但这似乎对排序没有影响…

您想绘制百分比与趋势或百分比与时间的关系图吗

目前,您的维度处于趋势,因此无法按日期订购。Crossfilter将为每个趋势值创建一个bin,该趋势值可能有许多日期,按照您编写reduce函数的方式,它将简单地用它看到的最后一个日期替换bin的日期条目


如果您想按日期排序,然后使用趋势来影响其他一些美学颜色,例如,您应该使用日期维度,按日期的一些量化进行分组,不要对reduce中的日期执行任何操作,并使用日期刻度/xUnits。

感谢您的回复,我对该维度的用途感到困惑。.没错,维度可以意味着很多事情。在crossfilter中,它几乎意味着你过滤和存储的内容。