任何人都可以幫忙嗎?我的數據正在被從兩個下拉列表中選擇的值過濾 - 然後嵌套/捲起以獲得這些相同值的每日平均值。下面的代碼出現「解析d錯誤的問題」。儘管過濾器和嵌套函數都返回了正確的數據,但是當我嘗試將這些數據應用於線圖來更新時,會出現問題?解析嵌套對象的錯誤?
d3.select("#parameterType").on("change", function()
{
d3.select("#dateTimeTaken").on("change", function()
{
var selectedParameter = document.getElementById("parameterType").value;
var selectedMonth = document.getElementById("dateTimeTaken").value;
//filter data by selected parameter and month
var selectedData = data.filter(function(d) {
return d.parameterType == selectedParameter &&
+d.dateTimeTaken.getMonth() == (selectedMonth - 1);});
console.log(selectedData);//returning correct data
//get average reading for each day within selected month
var newdata = d3.nest()
.key(function(d) {return d3.time.day(d.dateTimeTaken);})
.sortKeys(d3.ascending)
.rollup(function(d)
{
return {
mean: d3.mean(selectedData, function(d) {return +d.reading;})};
})
.entries(selectedData);
console.log(newdata);//returning correct data
//UPDATE GRAPH
//not returning correct max values?
x.domain(d3.extent(newdata, function(d) { return d.key; }));
y.domain([0, d3.max(newdata, function(d) { return d.values; })]);
svg.select("path.line")
.attr("d", line(newdata));
svg.select(".x.axis")
.transition()
.duration(750)
.ease("linear")
.call(xAxis);
svg.select(".y.axis")
.transition()
.duration(750)
.ease("linear")
.call(yAxis);
看起來像是[line accessors]的問題(https://github.com/mbostock/d3/wiki/SVG-Shapes#wiki-line_x)。你能否更新你的代碼來包含你如何初始化'line'變量? – 2013-03-10 12:22:35
全部要點:https://gist.github.com/Majella/202df0a4a5a3ad20fb92 – Newbie 2013-03-10 12:55:32