凡例をプロットに追加し、新しいタイプの がプロットされる遷移に続いて凡例を更新する方法を検討してきました。トラブルシューティングを行うことができなかった 2 つの問題に遭遇しました。
ブロックはこちら http://bl.ocks.org/natemiller/df4b96809580fe7d00a6
サンプルの JSON データセットには、いくつかの異なる変数 (温度、pH、名前、y など) が含まれており、私が開発しようとしているのは、x 軸にプロットされる変数と、データの塗りつぶしを決定する変数を変更するプロットです。ボタンがクリックされたときのポイント。これまでのところ、x 軸が変更され、ポイントが適切に移動し、凡例の色が適切に変更されています。ただし、2 つの問題があります。
凡例テキスト (ラベル) がありません。なぜそれらが表示されていないのかは明確ではありませんが、私が見逃している小さな詳細があると思います. それについて何か助けていただければ幸いです。
データセットでわかるように、同じ場所、同じ pH (7.2,8.0,7.2,7.2,8.0,8.0,7.6)、または同じ温度 (30、25、25) の「サンプル」がいくつかあります。 、30、30、25、25)。そのため、ここのコードのような凡例を生成すると...
varlegend = svg.selectAll('rect') .data(data) .enter().append("rect") .attr('x', width-50) .attr('y', function(d,i) {return i*20;}) .attr('width', 10) .attr('height', 10) .style('fill', function(d) { return color(d.name); });
...そして d.name を使用して色を設定すると、7 つの長方形 (値ごとに 1 つ) が得られます。塗りつぶしの色がサイトまたは pH によって設定されている場合は 3 つの長方形が必要です (塗りつぶしが温度によって設定されている場合は 2 つ)。一部の値が重複している場合。これを行う手段はありますか?私は d3.nest を検討しましたが、移行を開始するときに、データを名前ではなく pH でネストする必要があります (したがって、塗りつぶしは d.pH によって設定されます)。これについてコメントをいただければ幸いです。あまりにも複雑な方法でこれを行っていますか? この同じ目標を達成するために考えるべきもっと簡単な方法はありますか?
あなたの時間と助けに感謝します, ネイト