У меня есть ползунок d3 с диапазоном от 2001 до 2016 и файл csv с именами столбцов и no_2001 до no_2016. Csv вызывается в d3.queue вместе с json-файлом для создания карты choropleth, меняющейся с годами.d3 слайдер для изменения столбца csv
Моя проблема заключается в том, чтобы изменить столбец csv-файла, перетащив ползунок. Может ли кто-нибудь помочь? Благодаря!
Это то, что у меня есть до сих пор. В функции очереди «+ d.no_2015» нужно изменить, но мой определенный «столбец» не работает, если я заменил его на «+ d.no_2015».
<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();' помогает раскрасить карту, глядя на значения в столбце «no_2015» в файле csv. Мне нравится хранить значение галочки слайдера, например. 2014 и заменить вместо «no_2015» в функции rateById «no_2014». Я не использовал вывод 'cssColumn' в этом коде, потому что он не работал, если я заменил' + d.no_2015' на '+ d.column'. Спасибо за помощь. –
Хорошо, см. Ответ ниже и проверьте, помогает ли он! –