在基于用户选择的折线图中重新呈现路径的问题
issue in re-rendering the path in a line chart based on user selection
我遇到了一个奇怪的问题。我用按钮创建了两个折线图来控制线条的可见性。在第二个图表中,行可见性的切换工作得很好。但是在第一个图表中,一旦它被渲染,如果我试图切换线条的可见性,它不起作用(所有的线条都消失了)。创建path的代码甚至不会被调用。创建路径的代码是:
var valueline = d3.svg.line()
.x(function(d) {
return x(d.date);
})
.y(function(d) {
return y(d.value);
})
.interpolate("monotone");
// ...
var lineInstance = g.selectAll(".line-instance")
.data(filteredData)
.enter().append("g")
.attr("class", "line-instance");
lineInstance.append("path")
.attr("class", "line")
.attr("d", function(d) {
//this code is called when second-chart line is toggled
// but not with first chart
console.log(d);
return valueline(d.values)
})
.style("stroke", "black");
第一次渲染后,如果我切换第一个图表的任何一条线的可见性,两条线都会永久消失。两张图的代码完全一样。尝试调试,但尚未成功。
在为折线图设置变量时,您在g = svg.append("g").attr(...
处忘记了var
语句。因此,g
变量被添加到window
中,而不局限于link
函数。因此,折线图指令的第二次实例化会覆盖变量——这导致了奇怪的行为。
这是JSFiddle的固定版本。我建议使用ESLint这样的JavaScript检查器,它会警告你这些错误。
相关文章:
- 用与线条相同的颜色填充多折线图上的点
- 跟踪jqplot垂直折线图的鼠标位置
- Morris.js折线图x轴标签在调整大小后消失
- Chart.js V2折线图缺点
- 将直流图表库中的折线图缩放限制为小时
- 如何用d3.js绘制折线图
- 在条形图中呈现数据AngularJS,如何制作一个好的多条形图
- 部分填充区域的折线图
- 将时间缩放添加到折线图(Chart.js)
- Chart.js折线图的0线型
- d3绘制动画折线图的基本示例
- Javascript FLOT组合条形图;以x轴为字符串的折线图
- 如何在折线图中显示最近的值
- charts js更改折线图轴的字体大小/颜色和背景线
- D3 折线图:x 折线函数始终呈现 NaN
- D3.js折线图不呈现股票折线图
- 如何使用DC.js呈现具有以下数据类型的多折线图-JAVASCRIPT(DC.js)
- 在基于用户选择的折线图中重新呈现路径的问题
- 向折线图添加新的数据点条目
- 加载新数据到C3.js折线图