2013-05-21 3 views
0

Как изменить размер с помощью последнего кода. Примеры теперь используютupgrade to highstock 1.3.1 breaks resize code

chart = $('#theChart').highcharts({ 

Вместо newing HighStockChart

chart = new Highcharts.StockChart({ 

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

$(window).resize(function() { 
    var height = getHeight(); 
    console.log('fit new div container size, width='+$("#theChart").width()+' height='+height+' windowH='+$(window).height()); 
    chart.setSize($("#theChart").width(), height, false); 
}); 

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

(Моя панель масштабирования также полностью сломалась ... есть хороший пример для этого, поскольку теперь мне нужно добавить это обратно).

спасибо, Дин

ответ

1

Вы все еще можете назвать chart = new Highcharts.StockChart(options) для создания диаграмм.

Однако теперь $("#container").highcharts(options); возвращает объект jQuery, а не диаграмму диаграмм. Чтобы получить диаграмму из созданного использования ID: $("#container").highcharts(); (пустых Highcharts())

+0

переключаясь на новую Highcharts.StockChart (варианты) ввинчивается вещи. Я попробую второй вариант и посмотрю, как это работает. –

+0

chart = $ ("# container"). Highcharts(); не работает, так как chart.setSize() терпит неудачу с таким методом –

+0

Скорее всего, вы забудете в новом Highcharts.StockChart() добавить параметр renderTo. Второй вариант - см. Пример Себастьяна - отлично работает. Вспомните вопрос о jsFiddle, пожалуйста. –

1

В новой версии вы можете использовать первую конструкцию: http://jsfiddle.net/L6hpm/

chart = new Highcharts.StockChart({ 
     chart:{ 
      renderTo:'container' 
     }, 

Я второе решение, которое вы можете использовать:

http://jsfiddle.net/NbHj9/

var chart = $('#container').highcharts(); 

     chart.setSize(100,100); 
+0

есть что-то вялое с новым Highcharts.StockChart ... переходящим для $ {'# container'). Highcharts() заставляет его работать, но это не возвращает диаграмму с методом setSize .. http: // jsfiddle. net/C4eYK/ –

+0

chart = $ ("# container"). highcharts(); не работает, так как chart.setSize() терпит неудачу без такого метода –

0

Почему бы не использовать это:

var chartOptions = { 
    chart: { 
     renderTo: '[id of div]', 
    }, 
    xAxis:{ 

    }, 
    ... 
    series:{ 

    }, 
}; 

var chartName = new Highcharts.chart({chartsOptions}); 

Это точно должно работать для вас .... просто использовать chartName.setOptions(), чтобы установить размер