2013-05-21 4 views
3

Возможно ли обновить параметр диаграммы (например, marginRight) и вызвать redraw(), чтобы это новое значение отразилось на графике? Или нужно создать новый экземпляр диаграммы для этих типов изменений?Highcharts - Обновление опции диаграммы после первоначального рендера

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

перерисовать диаграмму после того, как изменения были сделаны к данным или оси крайности

И новая динамическая функции в 3,0 состояниях:

Through полный API, вы можете добавлять, удалять и изменять серии и точки или изменять оси в любое время после создания диаграммы.

Заранее спасибо.

Update

Моя причина для желания сделать это я имел вертикальную планировку и выравнивание по правому краю легенды, которая была перекрывающийся мой график. Я просто понял, что Highcharts автоматически устанавливает правильный marginRight для размещения для этого, если он явно не указан.

ответ

4

К сожалению, вы не можете изменять параметр маржи динамически, поэтому вам нужно уничтожить старый график и создать новый экземпляр.

Эта функция является одной из наших целей в ближайшем будущем.

+0

Спасибо. Я смог выполнить это, не разрушив старый график, установив «Chart.optionsMarginRight», а затем вызвав «Chart.render()» – Irving

+0

@Sebastian Это что-то, что вы еще достигли? – Philip

+0

В данный момент, nope –

1

Допустим, вы получили диаграмму инициализирована как это:

chart = new Highcharts.Chart({ 
    ... 

Вы можете изменить тривиальные атрибуты, как и его название, как это:

chart.setTitle({text: "New title"}); 

И вы можете обновить набор данных, он использует с новый, вот так:

chart.series[0].setData(newChartData, true); 

Где newChartData будет содержать массив с новыми данными, хочу показать

+0

Спасибо Филиппу. Я ищу способ изменить еще более тривиальный атрибут. Тот, у которого нет конкретного метода для этого. В частности, есть ли способ изменить marginRight? Я пробовал модифицировать его в 'Chart.options' и вызывать' redraw() ', но это, похоже, не работает. – Irving

+2

В этом случае вам, вероятно, потребуется восстановить диаграмму. Проверьте этот вопрос: http://stackoverflow.com/questions/9661250/render-highcharts-after-user-updated-labels –

Смежные вопросы