d3.scale.quantize()
とcolorBrewer
を使用して、カラースケールを取得しています。d3で凡例を動的に作成
....
var extent = d3.extent(collection.features, function(d) {
return d.properties.mean;
});
var colorScale = d3.scale.quantize()
.domain(extent)
.range(colorbrewer.RdYlBu[8]);
...
これは私に8
の異なる色を与え、与えられた値の特定の範囲に対応します。 私はその後、私は値の範囲は色"#fdae61"
または"#fee090"
に対応しているかを知るにはどうすればよいsvg
....
.attr("fill-opacity", 0.1)
.attr("stroke", "grey")
.style("fill", function(d) {
return colorScale(d.properties.mean);
});
...
を埋めるためにcoloScale
を使うのか?これらの値にはどうすればアクセスできますか? 8
から3
への入力色の数を変更すると、色の尺度で使用される色、つまりRdYlBu
からYlGn
に変更すると、凡例を動的に変更したいと考えています。
私は非常に近いと思います。 私は唯一の私は、簡単に私の凡例を作成するために使用できる対応する値でdomain
を入力する必要があり、この
var scale = d3.scale.ordinal()
.domain()
.range(colorScale.range());
を持っている... しかし、私は動的に抽出する方法がわかりません。 colorScale.invertExtent("#fdae61")
のようなものは、私がカラースケールを変更するときは常に色などを変更する必要があるので、静的にすることです。
素晴らしい、ありがとう! – Stophface
さらに簡単に、すべてのループのものを保存するには '... .text(function(d、i){ return colorScale.invertExtent(colorScale.range()[0]; }).. 」 – Stophface