0
リストを更新しようとしていますが、更新が正しくないと確信しています。ボタンをクリックすると、HTMLスライダから読み込みます。 newdatasetにするデータは正しいですし、表示する要素の数が正しくなっていますが、newdatasetと同じではありません。D3更新が新しい配列を更新しない
var dataset;
function yearFilter(min, max) {
return function (x) {
if (x.YEAR <= max && x.YEAR >= min) return x
}
};
d3.csv("./Datasets/Anne_Arundel_County_Crime_Rate_By_Type.csv", function (data) {
dataset = data;
d3.select("body").selectAll("p").data(dataset).enter().append("p").text(function(d){return d.YEAR + " " + d.POPULATION});
});
function setMinValue(minYear, p1) {
var x = document.getElementById(p1);
var y = document.getElementById(minYear);
x.innerHTML = y.value;
}
function setMaxValue(maxYear, p2) {
var x = document.getElementById(p2);
var y = document.getElementById(maxYear);
x.innerHTML = y.value;
}
window.onload = function() {
setMinValue('minYear', 'p1');
setMaxValue('maxYear', 'p2');
}
document.getElementById("clickMe").onclick = update;
function settimespanandrun() {
var firstYear = parseInt(minYear.value);
var lastYear = parseInt(maxYear.value);
var years = yearFilter(firstYear, lastYear);
var yearFilterDataSet = dataset.filter(years);
return yearFilterDataSet;
};
function update() {
var newdataset = settimespanandrun();
var newData = d3.select("body").selectAll("p").data(newdataset);
newData.enter().append("p").text(function (d) {return d.YEAR + " " + d.POPULATION})
newData.exit().remove();
}
あなたのコードはもうD3 v3のではなく、D3と連携v4のでしょう。先日、これについての回答を書いた:https://stackoverflow.com/a/47744751/5768908 –