Dygraph: как очистить данные графика и перезагрузить его?

В моем приложении есть функция обновления, в которой все существующие данные на графике должны быть очищены, а данные должны быть загружены с самого начала. Я не хочу уничтожать dygraph и воссоздавать его, а просто нужно очистить существующие данные и построить график с самого начала. Я пробовал

g.rawdata_ = ноль; g.updateOptions({'файл': g.rawdata_});

Но выдает ошибку. Если я установлю для необработанных данных значение 0, а затем попытаюсь обновить, данные не будут удалены. Любое предложение о том, как это сделать?


person justcurious    schedule 16.09.2013    source источник
comment
Если вы просто хотите, чтобы dygraph перерисовывался, то g.updateOptions({}) будет работать. Если вы хотите загрузить новые данные, вы должны вызвать g.updateOptions({file: newData}). Можете ли вы уточнить, что вы пытаетесь сделать?   -  person danvk    schedule 16.09.2013
comment
Предположим, я нанес несколько рядов данных на дорожку, теперь в моем приложении есть кнопка обновления. При нажатии этой кнопки уже построенные данные должны быть исключены из трека, а построение должно быть возобновлено на основе новых данных. Использование g.updateOptions({}) не удаляет существующие данные. Надеюсь, это проясняет вопрос.   -  person justcurious    schedule 17.09.2013
comment
dygraphs просто отображает любые данные, которые вы ему предоставляете. Вам нужно будет убедиться, что данные верны самостоятельно!   -  person danvk    schedule 30.11.2014
comment
Вы нашли решение? У меня такая же проблема!   -  person gravi    schedule 16.04.2015
comment
Согласно официальной аннотации dygraphs.com/annotations.html, для простого обновления графика: «Вызов dygraph.setAnnotations (dygraph.annotations()) не работает: он просто заставляет диаграмму обновляться». Надеюсь, поможет.   -  person Alex Dzeiko    schedule 28.06.2016


Ответы (2)


Как говорят ребята в комментариях:

plotData = [[0,0]];

g.updateOptions(
    { 
        'file': plotData
    }
);

plotData должен содержать что-то. Вероятно, вы могли бы указать один из нескольких разных форматов, но вышеописанное работало для меня в прошлом. Я также обновляю график в реальном времени и обновляю данные каждую секунду. Для этого я предварительно загружаю plotData непосредственно перед updateOptions.

Удачи,

j

person slightlynybbled    schedule 19.01.2016

Я столкнулся с почти такой же проблемой. У меня есть графики, которые обновляются, когда пользователь нажимает кнопку. Дескриптор dygraphs является локальной переменной, например,

var g = new Dygraph(...

Это вызывается внутри функции. Проблема заключалась в том, что граф и все переменные, на которые он ссылался (элемент, данные и т. д.), никогда не уничтожались и оставались в памяти.

Мой обходной путь состоял в том, чтобы иметь глобальный объект с chart_id в качестве ключа и дескриптор диаграммы в качестве значения, и каждый раз, когда вызывается один и тот же chart_id, я проверяю, существует ли дескриптор в глобальном объекте, и уничтожаю, если он существует. Вот как это выглядело,

if(chart_handle[chart_id])
{
   chart_handle[chart_id].destroy();
}
chart_handle[chart_id] = new Dygraph(...
person Suyash    schedule 20.08.2018
comment
Является ли chart_handle[chart_id].destroy(); delete chart_handle[chart_id]; правильным способом удаления объекта Dygraph из памяти? Основная проблема в том, что я не смог найти ничего, связанного с этим вопросом (как удалить график) в их документах. - person Angel; 27.06.2020