我有一个d3折线图的小视觉问题。如何使d3线条图中的线条更平滑?
也许任何人有这个简短的解决方案:
我想有以下平滑的三条线比他们。
我宁愿希望有线条看起来像这样:
我已经选中,这不是笔画宽度导致这种错误的视觉行为。
如果问题不清楚:基本上,我想实现更高的图表分辨率,看起来像是由更大的像素组成。
这是代码,导致这个结果:
var temp = g.selectAll(".temp")
.data(stationData)
.enter().append("g")
.attr("class", "temp");
let values = stationData.map(function(d){
return {
"hour": parseFloat(d.hour),
"temperature": parseFloat(d.avgtemp)
}
});
temp.append("path")
.attr("id", "avgtemp")
.attr("class", "line")
.attr("d", function(d) {
return line(values);
})
temp.append("text")
.datum(function(d) { return {value: values[values.length - 1]}; })
.attr("transform", function(d) { return "translate(" + x(d.value.hour) + "," + y(d.value.temperature) + ")"; })
.attr("x", 3)
.attr("dy", "0.35em")
.style("font", "12px sans-serif")
.text("Avg Temperature");
values = stationData.map(function(d){
return {
"hour": parseFloat(d.hour),
"temperature": parseFloat(d.mintemp)
}
});
temp.append("path")
.attr("id", "mintemp")
.attr("class", "line")
.attr("d", function(d) {
return line(values);
})
temp.append("text")
.datum(function(d) { return {value: values[values.length - 1]}; })
.attr("transform", function(d) { return "translate(" + x(d.value.hour) + "," + y(d.value.temperature) + ")"; })
.attr("x", 3)
.attr("dy", "0.35em")
.style("font", "12px sans-serif")
.text("Min Temp");
values = stationData.map(function(d){
return {
"hour": parseFloat(d.hour),
"temperature": parseFloat(d.maxtemp)
}
});
temp.append("path")
.attr("id", "maxtemp")
.attr("class", "line")
.attr("d", function(d) {
return line(values);
})
temp.append("text")
.datum(function(d) { return {value: values[values.length - 1]}; })
.attr("transform", function(d) { return "translate(" + x(d.value.hour) + "," + y(d.value.temperature) + ")"; })
.attr("x", 3)
.attr("dy", "0.35em")
.style("font", "12px sans-serif")
.text("Max Temp");
既然您还没有分享您的代码,我不确定真正的问题。但是,仍然在d3图表中看到类似的问题,即多个路径使用相同的d属性绘制。确认图表中没有这样的重复路径。 – Gilsha
谢谢soo!我完全忘记了,当你有多个实例时,它会看起来像这样。 我有一个selectAll()。输入(数据)语句的问题! 现在它的工作非常感谢你! – byebb