2014-07-20 18 views
7

Trong Highcharts, có demosarticles khi tải bộ dữ liệu lớn vào Highcharts.Tải một số tập dữ liệu lớn trong Highcharts

Chúng tôi biết rằng không có trình duyệt nào hiện tại có khả năng thực hiện điều đó nếu dữ liệu quá lớn. Tham khảo này article, nó cho thấy sử dụng tập hợp và tách bảng để tải dữ liệu vào HighCharts, nhưng tôi chỉ không nghĩ rằng giải pháp phù hợp với nhu cầu của tôi.

Tôi sử dụng mysql để lưu trữ dữ liệu của mình và có nhiều bảng. Dữ liệu được vẽ trên Highcharts dựa trên chuỗi thời gian, có nghĩa là dữ liệu là một lần một ngày.

Tôi cần tải biểu đồ với một loạt bộ dữ liệu này (dựa trên tiêu chí) và dữ liệu không thể được tổng hợp thành hàng tháng vì nó chỉ cần được hiển thị như trong chế độ hàng ngày. Trên hết, tôi phải đặt chế độ xem đầu tiên của biểu đồ là All.

Lý do không tổng hợp dữ liệu vì người dùng muốn xem các thay đổi hàng ngày. Đôi khi có dữ liệu và tập hợp bất thường không phải là lựa chọn tốt nhất cho việc này. Dữ liệu được tải là từ năm 1980

Chiến lược hoặc kỹ thuật tốt nhất để tải những dữ liệu này lên HighCharts là gì?

+2

Âm thanh như một công việc cho ajax nạp năng động với tôi. –

+0

có.ajax có nghĩa là asynchrounously – Muhaimin

+3

Làm tốt để trả lời nhận xét của ai đó. –

Trả lời

1

Bạn đã thử tải dữ liệu hàng ngày chưa? Nếu bạn có một điểm dữ liệu cho mỗi ngày trong 45 năm qua thì nó chỉ là 16.000 điểm. Bất kể, tôi sẽ bắt đầu bằng cách trước tiên đảm bảo tải mọi thứ quá nhiều cho highcharts và nếu có, hãy xem xét tập lệnh động tổng hợp nơi phóng to qua ngưỡng, giả sử 5 năm, kích hoạt tập dữ liệu thành tập hợp tổng hợp mỗi tuần.

Đây là giải pháp tiềm năng của tôi:

tải bảng xếp hạng với tập dữ liệu độ phân giải đầy đủ, mỗi tuần tổng bộ, và có thể mỗi tháng đề ra. Sau đó, bạn đặt trình xử lý sự kiện trên số điểm trên chế độ xem hiện tại. Khi nó đạt đến một ngưỡng nhất định, bạn vẽ lại để tổng hợp.

Bạn sẽ không thực sự mất cơ hội để xem các sự kiện quyết liệt vào một ngày cụ thể kể từ khi tổng hợp 7 ngày sẽ vẫn hiển thị mức cao đủ quan trọng. Sau đó, người dùng có thể phóng to và xem dữ liệu chi tiết hơn. Giá trị dữ liệu hàng ngày của năm mươi bốn mươi giảm xuống còn vài nghìn điểm.

4

Vì vậy, bạn đang nói rằng bạn có 35 năm dữ liệu hàng ngày. Đối với tôi đó là < 13k điểm. Và sau đó bạn có biểu đồ, ví dụ: rộng 600px. Điều đó có nghĩa là bạn có 20 điểm trên 1 pixel. Và bạn nói rằng tập hợp là xấu, bởi vì người dùng cần xem dữ liệu thực sự. Hãy để tôi hỏi, làm thế nào người dùng sẽ thấy rằng điểm, khi sẽ có 20 người trong số họ trong 1px? Có lẽ tôi đang già đi, nhưng tôi sẽ không thể nhìn thấy điểm đó thực sự tốt, chỉ là một số 'con đường béo'. So sánh các ví dụ sau: http://jsfiddle.net/Fusher/4ytzuv7o/1/

Chỉ cần tàn tật dataGrouping trong một ví dụ thứ hai:

dataGrouping: { 
    enabled: false 
} 

Khi bạn zoom-in trong một ví dụ đầu tiên, bạn sẽ nhận được dữ liệu đúng anyway.

Nếu bạn thực sự không thể sử dụng DataGrouping, vậy còn cách giải pháp khác thì sao? Vô hiệu hóa hàng hải và nút 'Tất cả', để người sử dụng sẽ có thể phóng to chỉ ở phạm vi nhất định, như thế này: http://jsfiddle.net/Fusher/4ytzuv7o/3/

$('#container').highcharts('StockChart', { 
    rangeSelector: { 
     inputEnabled: false, 
     buttons: [{ 
      type: 'month', 
      count: 1, 
      text: '1m' 
     }, { 
      type: 'month', 
      count: 3, 
      text: '3m' 
     }, { 
      type: 'month', 
      count: 6, 
      text: '6m' 
     }, { 
      type: 'ytd', 
      text: 'YTD' 
     }, { 
      type: 'year', 
      count: 1, 
      text: '1y' 
     }], 
     selected: 0 
    }, 
    navigator: { 
     enabled: false 
    }, 
    series: [{ 
     name: 'AAPL', 
     data: data, 
     dataGrouping: { 
      enabled: false 
     } 
    }] 
}); 
+0

bản demo bạn có chỉ là một chuỗi. Làm thế nào về 16k điểm cho sáu loạt? Tôi không nghĩ Highchart sẽ có khả năng xử lý điều đó. Tôi sẽ cố gắng tư vấn cho người dùng của tôi một lần nữa. Họ muốn sử dụng biểu đồ để phân tích dữ liệu an toàn đập. Bất kỳ trải nghiệm nào trên màn hình hiển thị trực quan hóa dữ liệu cho trường môi trường? – Muhaimin

+0

Tuy nhiên, có số điểm lớn như vậy là ý tưởng tồi, biểu đồ không thể sử dụng được, so sánh: http://jsfiddle.net/Fusher/4ytzuv7o/4/ và http://jsfiddle.net/Fusher/4ytzuv7o/ 5 /. Tôi nghĩ giải pháp với thanh cuộn đã bật là giải pháp tốt nhất cho trường hợp của bạn. –

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