2013-02-22 32 views
8

मेरे पास एक पृष्ठ पर लगभग 6 चार्ट हैं, उनमें से एक को अन्य पांच से अलग थीम की आवश्यकता है। मेरे पास व्यक्तिगत रूप से काम करने वाले थीम हैं लेकिन प्रारंभिक दूसरा चार्ट सभी चार्टों पर लागू होता है।Highcharts.js - एक ही पृष्ठ पर एकाधिक विषयों?

वहाँ जो विषय एक चार्ट का उपयोग करता है निर्दिष्ट करने के लिए कोई तरीका है?

+2

C की आवश्यकता है आप एक डेमो दिखाते हैं? शायद आप 'Highcharts.setOptions()' का उपयोग कर रहे हैं जो कॉल के बाद बनाए गए सभी चार्टों के लिए विकल्प सेट करता है। –

+2

हां, यह वही है जो मैं कर रहा था। अपनी टिप्पणी पढ़ने के बाद मैंने चार्ट के निर्माण के दौरान setOptions() कॉल को स्थानांतरित कर दिया जो चार्ट बनाता है और अब यह काम करता है :) –

+0

हाहा, बढ़िया! :) –

उत्तर

8

रिकार्डो की टिप्पणी को पढ़ने के बाद मुझे एहसास हुआ कि मैं बस setOptions स्थानांतरित करने के लिए() $ (document) .ready कॉल के अंदर फोन किया था। मेरी कोड के

एक बहुत सरलीकृत संस्करण:

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)); 

इस तरह से आप सेट कर सकते हैं प्रत्येक चार्ट के लिए अलग-अलग थीम यदि आपको