Так что я не смог найти пример. Я загружаю этот огромный набор данных из внешнего файла с помощью D3, и я делаю график с некоторой частью данных. Когда ползунок перемещается, я хочу сделать тот же график с какой-то другой частью данных.
Я использовал d3.json () для загрузки данных. Проблема, с которой я сталкиваюсь, заключается в следующем: поскольку d3.json () является асинхронным, он загружает набор данных один раз, а затем я не могу получить к нему доступ из других функций. У меня не может быть другой функции обновления, которая создает новый график, так как я просто больше не могу получить доступ к данным.
Предложения других людей были "только с использованием данных в функции d3.json (): Как сохранить объект JSON, загруженный из файла?
d3.json("temp.json", function(data){
//use data here
})
// do not use data anymore
Я пытался использовать переменную для хранения данных (второй ответ по той же ссылке вопроса выше):
var DATASET; // global
d3.json("file.json", function(data) {
DATASET = data;
//any other functions that depend on data
});
d3.selectAll().data(DATASET).......
И я не смог заставить его работать вообще, поскольку (я полагаю, это и есть причина) данные не были загружены в DATASET, когда последняя строка d3.data вызывает DATASET
Есть ли способ обновить внешние данные в d3? Должен ли я просто загрузить данные снова в моей функции обновления? Повлияет ли это на производительность, так как набор данных огромен?
Большое спасибо за ответ!