2013-02-22 20 views
8

Ben tek bir sayfada yaklaşık 6 grafikleri var, bunlardan biri diğer beşten farklı bir tema olması gerekir. Tek tek çalışan temalarım var, ancak ikincisi tüm grafiklere uygulanır.Highcharts.js - aynı sayfada birden fazla tema var mı?

Bir grafiğin hangi temayı kullandığını belirlemenin bir yolu var mı?

+2

C gerekiyorsa her grafik için ayrı temalar Bir demo göstereyim mi? Muhtemelen aradıktan sonra oluşturulan tüm grafiklerin seçeneklerini ayarlayan 'Highcharts.setOptions()' kullanıyorsunuzdur. –

+2

Evet, aynen yaptığım şey buydu. Yorumunuzu okuduktan sonra, setOptions() çağrısını çizelgeleri oluşturan işleve taşıdım ve şimdi çalışıyor :) –

+0

Haha, harika! :) –

cevap

8

Ricardo'nun yorumunu okuduktan sonra, setOptions() çağrısını $ (document) .ready aramasında taşımak zorunda olduğumu farkettim. Benim kod

bir çok basitleştirilmiş versiyonu:

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

En iyi uygulama şu anda chart options ile teması halinde birleştirmek olacaktır:

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

ayarlayabileceğiniz bu şekilde Eğer çok

İlgili konular