【发布时间】:2020-10-27 16:19:10
【问题描述】:
我是 dc.js 的新手,我想用对象创建一个简单的折线图。
对象(/signalData.json):
"1": 10,
"2": 20,
"3": 30,
"4": 40,
"5": 50,
"6": 60
键应该是x坐标,值应该是y坐标
我尝试过类似的方法,但它不起作用:
var data = {
"1": 10,
"2": 20,
"3": 30,
"4": 40,
"5": 50,
"6": 60
};
var dataModel = [{
"keys": Object.keys(data).map(function(d) {
return +d;
}),
"values": Object.values(data)
}, ]
signalCF = crossfilter(dataModel)
signalDim = signalCF.dimension(function(d) {
return d.keys
}, true)
signalGroup = signalDim.group().reduceSum(function(d) {
return d.values
});
var linechart = dc.lineChart("#linechart")
.width(700)
.height(300)
.x(d3.scale.linear().domain([0, 6]))
.renderArea(true)
.brushOn(false)
.renderDataPoints(true)
.clipPadding(10)
.yAxisLabel("This is the Y Axis!")
.dimension(signalDim)
.group(signalGroup);
linechart.render();
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter2/1.4.0-alpha.6/crossfilter.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dc/2.1.1/dc.js"></script>
<div id="linechart"></div>
【问题讨论】:
-
不起作用是什么意思?你有错误吗?你看到什么了吗?
Object.keys()返回一个字符串数组,尝试Object.keys(data).map(function(d) { return +d; })将字符串转换为数字 -
它支持图表中的 d.keys 但 d.values 是 NaN
-
请创建minimal reproducible example,以便我们与您一起调试
-
我添加了更多信息。现在这是我的所有代码。希望对你有帮助
-
如果您需要更多信息,请告诉我 :)
标签: d3.js dc.js crossfilter