私はd3折れ線グラフで小さな視覚的な問題があります。d3折れ線グラフをスムーズにするにはどうすればいいですか?
たぶん、誰もがこのための短いソリューションを持っています
私は、彼らがよりスムーズに次の3つのラインを持っていると思います。
私はむしろ、このように見えるラインを持つようにしたい:
私はすでにそれがこの間違った視覚的な行動につながるストローク幅ではないことを、確認しました。
質問が不明な場合:基本的には、チャートの解像度を高くしたいのですが、それは大きなピクセルで構成されているようです。
これは、この結果につながるコード、次のとおりです。
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");
コードを共有していないので、実際の問題は何か分かりません。しかし、同じd属性を持つ複数のパスが描画されている場合でも、d3グラフで同様の問題が発生しています。そのような重複したパスがチャートに存在しないことを確認します。 – Gilsha
すっごくありがとう!私は、あなたが複数のインスタンスを持っているときに、このように見えることを完全に忘れる。 selectAll()。enter(data)文に問題がありました。 今すぐご利用いただきありがとうございます。 – byebb