2013-02-22 38 views
8

Tôi có khoảng 6 biểu đồ trên một trang, một trong số chúng cần có chủ đề khác với năm trang còn lại. Tôi có các chủ đề làm việc riêng lẻ nhưng chủ đề thứ hai được khởi tạo được áp dụng cho tất cả các biểu đồ.Highcharts.js - nhiều chủ đề trên cùng một trang?

Có cách nào để chỉ định biểu đồ chủ đề nào sử dụng không?

+2

C bạn có thể giới thiệu bản demo không? Có thể bạn đang sử dụng 'Highcharts.setOptions()' để đặt tùy chọn cho tất cả biểu đồ được tạo sau cuộc gọi của nó. –

+2

Vâng, đó chính xác là những gì tôi đang làm. Sau khi tôi đọc bình luận của bạn, tôi đã chuyển cuộc gọi setOptions() bên trong hàm tạo các biểu đồ và bây giờ nó hoạt động :) –

+0

Haha, tuyệt vời! :) –

Trả lời

8

Sau khi đọc nhận xét của Ricardo, tôi nhận ra rằng tôi chỉ cần di chuyển cuộc gọi setOptions() bên trong cuộc gọi $ (tài liệu) .ready.

Một phiên bản nhiều đơn giản của mã của tôi:

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

Thực hành tốt nhất hiện nay sẽ được hợp nhất trong chủ đề với chart options của bạn:

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

cách này bạn có thể thiết lập các chủ đề riêng lẻ cho mỗi biểu đồ nếu bạn cần quá

Các vấn đề liên quan