【发布时间】:2015-11-05 16:55:13
【问题描述】:
我有一个序数比例的数据,我想在 DC.js 中使用折线图进行可视化。数据看起来像这样:
var data = {points:[{x:"A", y:23}, {x:"C", y:50}, {x:"B", y:40}]}
使用标准 DC.js 可以正常工作:
var chart = dc.lineChart("#chart");
var ndx = crossfilter(data.points);
var ordinal_dimension = ndx.dimension(function (d) {
return d.x;
})
var loan_dimension = ordinal_dimension.group().reduceSum(function (d) {
return d.y;
});
chart
.width(800)
.height(600)
d3.scale.ordinal()
.xUnits(dc.units.ordinal)
.interpolate('linear')
.renderArea(true)
.clipPadding(10)
.dimension(ordinal_dimension)
.group(loan_dimension)
chart.render();
但是发生的情况是 x 轴上的顺序发生了变化;而不是“A”、“C”、“B”现在是“A”、“B”、“C”。
为了颠倒顺序,我尝试做这样的事情:
var x_scale = $.map(data.points, function(values) {
return [values.x];
});
var x = d3.scale.ordinal()
.domain(x_scale)
但这完全弄乱了图表。请参阅此处的示例:https://jsfiddle.net/ms9j4x00/7/
有什么方法可以保留 DC.js 中的顺序吗?
【问题讨论】:
标签: javascript d3.js dc.js