2011-08-27 42 views
5

Về cơ bản, tôi muốn người dùng có thể thay đổi loại biểu đồ bằng cách nhấp vào trình đơn thả xuống: BarRenderer, PieRenderer, vv Dữ liệu giống nhau. Tôi biết tôi có thể gọi $ .jqplot() một lần nữa trên cùng một yếu tố, nhưng sau đó tôi sẽ phải vượt qua tất cả các thiết lập một lần nữa. Và trang của tôi có số lượng đồ thị thay đổi, điều này làm cho tùy chọn đó trở thành một lựa chọn rất tồi.Làm thế nào để tự động thay đổi jqplot renderer?

Tôi đã tìm thấy liên kết về điều này: http://groups.google.com/group/jqplot-users/browse_thread/thread/efe6511cd9496f16/5c625baf78d3b0ae nhưng có vẻ như tôi vẫn phải gọi lại $ .jqplot() một lần nữa.

Có cách nào tốt hơn để thực hiện việc này không? Và một câu hỏi nhỏ nữa: là nó chỉ cho tôi, hoặc các tài liệu trên jqplot là xấu? Tôi phải xem qua nhiều nơi để tìm một tùy chọn tôi muốn (và đôi khi, tùy chọn không được ghi lại, hoặc tôi không thể tìm thấy nó bằng cách nào đó). Làm thế nào để bạn tìm hiểu cách sử dụng jqplot?

+0

Cập nhật dữ liệu và replot 'plot1.series [0] .data = newData; plot1.resetAxesScale(); plot1.replot(); 'http://stackoverflow.com/a/10901538/516748 – KCD

Trả lời

5

Tôi nghĩ rằng các tài liệu là ok, nhưng bạn sẽ tìm thấy các tính năng ẩn bên trong của nó hoặc quirks mà không được tài liệu. IIRC (nó được một lúc), bạn sẽ phải gọi $ .jqplot() một lần nữa nhưng trước tiên bạn cần phải .empty() mục tiêu của bạn hoặc bạn sẽ nhận được thêm/messed lên canvases.

Những gì bạn thực sự cần phải làm là lưu dữ liệu của bạn và cho phép nó được gọi sau:

//This isn't real jqplot syntax but it should give you a good idea of what I'm explaining 

var charts = [{name:"chart1",renderer:"pie",data:[[1,2],[2,3]]}] 
$('#graph').jqplot(charts[0]); 

//later 
charts[0].renderer = "bar"; 
$('#graph').empty().jqplot(charts[0]); 
+2

Đảm bảo gọi hủy() trên biểu đồ của bạn trước khi cuộc gọi đó trống() hoặc bạn sẽ bị rò rỉ bộ nhớ. Lưu biểu đồ được trả về bởi lệnh gọi đầu tiên để jqplot thành một biến, sau đó trong phần "later", gọi chart.destroy(); trước khi xây dựng lại cốt truyện. –

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