0
私は2001年から2016年までの範囲のd3スライダーと、列名とno_2001〜no_2016のcsvファイルを持っています。 csvは、jsonファイルと一緒にd3.queueで呼び出され、長年にわたり変化するchoroplethマップを構築します。c3v列を変更するd3スライダー
私の問題は、スライダをドラッグしてcsvファイルの列を変更することです。誰も助けることができますか?ありがとう!
これはこれまで私が行ってきたことです。キュー機能では "+ d.no_2015"を変更する必要がありますが、 "+ d.no_2015"と置き換えると定義した "column"が機能しません。私は右のそれを得た場合は、あなたのスライダーで定義された列は、マップを埋めるために代わりに使用されるように
<h2>Year: <span id="year">2016</span></h2>
<div id="slider"></div>
<script>
function csvColumn(data){
column = "no_" + data;
return column // this does not work
};
d3.select('#slider').call(d3.slider()
.min(2001)
.max(2016)
.value(2016)
.step(1)
.axis(d3.svg.axis().tickFormat(d3.format(".0f")).ticks(16))
.on("slide", function(evt, value) {
d3.select('#year').text(value);
csvColumn(value);
}));
var rateById = d3.map();
d3_queue.queue()
.defer(d3.json, "de_landkreis.json")
.defer(d3.csv, "maserndaten.csv", function(d) {rateById.set(d.name, +d.no_2015);}) //here the slider has to act. +d.column does not work.
.await(showData);
function showData(error, de_landkreis) { ... }
</script>
ここで達成しようとしていることを正確にはわかりません...また、コードは不完全です。 'rateById'と' showData'とは何ですか?また、関数 'cssColumn'を呼び出すと、その変数は変数に割り当てられていないか、任意の形式で使用されているため、値は完全に無視されます。あなたの戦略を説明してください。 –
こんにちは、 'showData'はマップをjsonファイルでビルドし、スライダーの影響を受けません。 'var rateById = d3.map();'は、csvファイルの「no_2015」列の値を調べて地図に色付けするのに役立ちます。 スライダのティック値を保存するのが好きです。 rateById関数の「no_2015」より「no_2014」で置き換えます。 '+ d.no_2015'を' + d.column'に置き換えても動作しなかったので、このコードで 'cssColumn'の出力を使用しませんでした。 ありがとうございます。 –
オクラホマ、下記の回答を参照して、役立つかどうかを確認してください! –