【发布时间】:2026-01-16 03:25:01
【问题描述】:
这是一个使用 Queue.js 在 dc.js 中加载多个 csv 的示例:https://github.com/dc-js/dc.js/blob/master/web/examples/composite.html
这是我的版本(javascript):
var composite = dc.compositeChart("#test_composed");
var composite2 = dc.compositeChart("#test_composed2");
var q = queue()
.defer(d3.csv, "morley.csv")
.defer(d3.csv, "morley2.csv");
q.await(function(error, exp1, exp2) {
var ndx = crossfilter();
ndx.add(exp1.map(function(d) {
return {x: d.Run};
}));
ndx.add(exp2.map(function(d) {
return {x: d.Run};
}));
var dim = ndx.dimension(dc.pluck('x')),
grp = dim.group().reduceCount(dc.pluck('x'));
composite
.width(768)
.height(480)
.x(d3.scale.linear().domain([0,200]))
.compose([
dc.barChart(composite)
.dimension(dim)
.group(grp)
])
.brushOn(false)
.render();
composite2
.width(768)
.height(480)
.x(d3.scale.linear().domain([0,200]))
.compose([
dc.lineChart(composite2)
.dimension(dim)
.group(grp)
])
.brushOn(false)
.render();
});
使用相同的数据,应该和附图一样好。
它适用于 lineChart 和 barChart,但不适用于 pieChart、rowChart...
是否有任何类似的饼图工作示例?
谢谢!
【问题讨论】:
-
在我看来就像一个直接的 dc.js 问题,queue.js 只是一种确保在初始化图表之前加载数据的方法。你能用你的非工作饼图发布一个 jsfiddle 吗?如果您查看饼图示例或 API 参考,您会发现 API 有点不同 - 例如,没有
.x(),原因很明显。 -
@Gordon 你是对的!换成饼图,其实很简单。让我们使用上面的composite2。在正常情况下,我们只需要 1. 删除 .x() 2. 删除 .brushOn() 3. 添加 .radius() 4. 将 lineChart 更改为 pieChart。在使用 Queue.js 之后,它就无法正常工作了...... :( jsfiddle.net/8K66Q
标签: d3.js charts dc.js queue.js