Итак, я пытаюсь получить диаграмму d3.js для перехода к различным значениям при нажатии кнопки. Хотя на данный момент некоторые элементы, кажется, добавляют, но чрезвычайно широкие и повсюду, а также предыдущие элементы, которые не удаляются.D3.js - Обновление данных диаграммы с кнопками
Это мой код:
function updateData(time) {
timeValue = time;
// Get the data again
d3.tsv(timeValue + ".tsv", function(error, data) {
x.domain(data.map(function(d) { return d.letter; }));
y.domain([0, d3.max(data, function(d) { return d.frequency; })]);
// Scale the range of the data again
x.domain(d3.extent(data, function(d) { return d.letter; }));
y.domain([0, d3.max(data, function(d) { return d.frequency; })]);
//Selecting Data
var bars = svg.selectAll("rect")
.data(data);
//Removing
bars.exit().remove("rect");
//Changes
bars.enter().append('rect')
.attr("class", "bar")
bars.attr('x', function(d) { return x(d.letter); })
.attr('width', x.rangeBand())
.attr('y', function(d) { return y(d.frequency); })
.attr("height", function(d) { return height - y(d.frequency); });
//var svg = d3.select("div.innerScreen2").transition();
});
Теперь я смотрел на подобные вопросы заданы и попытались применить решения, но ничего не кажется, чтобы удалить или изменить:/Может быть, у меня есть код в неправильном месте ? Любая помощь будет очень благодарна
Вам не нужно передавать какое-либо значение в '.remove', потому что он не принимает никаких аргументов. См. Https://github.com/mbostock/d3/blob/master/src/selection/remove.js – Oleg
Кроме того, где указаны определения 'range' и почему вы устанавливаете домены дважды? – Oleg
Я определил диапазон вне этой функции, когда создаю первый вывод гистограммы. 2 домена были случайностью, хотя я не думаю, что это должно было что-то сделать. – user2330621