2013-02-22 1 views
8

한 페이지에 약 6 개의 차트가 있으며 그 중 하나는 다른 5 개의 테마와 다른 테마가 있어야합니다. 개별적으로 작업하는 테마가 있지만 초기화 된 두 번째 테마는 모든 차트에 적용됩니다.Highcharts.js - 같은 페이지에 여러 테마가 있습니까?

차트에서 사용할 테마를 지정하는 방법이 있습니까?

+2

C 데모를 보여? 아마 당신은'Highcharts.setOptions()'를 사용하여 호출 후에 생성 된 모든 차트에 대한 옵션을 설정합니다. –

+2

네, 그게 제가하는 일입니다. 귀하의 의견을 읽은 후 나는 차트를 만드는 함수 안에 setOptions() 호출을 옮겨서 이제는 작동합니다. –

+0

하하, 대단한! :) –

답변

8

Ricardo의 의견을 읽은 후 $ (document) .ready 호출 내에서 setOptions() 호출을 이동해야한다는 것을 깨달았습니다. 내 코드의

훨씬 단순화 된 버전 :

Highcharts.theme1 = { 
    chart: { 
     borderWidth: 0, 
    }, 
}; 

var chart; 
$(document).ready(function() { 

    // Apply the theme 
    var highchartsOptions = Highcharts.setOptions(Highcharts.theme1); 

    // Build the chart 
    chart = new Highcharts.Chart({}); 

}); 

Highcharts.theme2 = { 
    chart: { 
     borderWidth: 5, 
    }, 
}; 

var chart2; 
$(document).ready(function() { 

    // Apply the theme 
    var highchartsOptions = Highcharts.setOptions(Highcharts.theme2); 

    // Build the chart 
    chart = new Highcharts.Chart({}); 

}); 
9

모범 사례가 현재 chart options와 주제에 병합하는 것 :

chart1 = new Highcharts.Chart(Highcharts.merge(options1, theme1));

var options1 = { 
    // options goes here 
     chart: { 
      renderTo: 'chart1', 
      type: 'bar', 
     }, 
     title: { 
      text: 'Conversions' 
     }, 
}; 

var theme1 = { 
    // themes goes here 
}; 

var chart1 = new Highcharts.Chart(Highcharts.merge(options1, theme1)); 

설정할 수있는이 방법 필요한 경우 각 차트의 개별 테마

관련 문제