hiển thị đồ thị trên web

Trong quá trình viết chương trình quản lý mạng cảm biến, một vấn đề khó nuốt tôi gặp phải là hiển thị biểu đồ các thông số hệ thống, giá trị cảm biến. Tôi chọn nền tảng web chứ không phải là desktop app vì một số lý do, như tương thích đa nền tảng.

Đối tượng đầu tiên nhắm đến là rrdtool (bonus thêm phần cơ sở dữ liệu thời gian thực). rrdtool được dùng trong rất nhiều trình ứng dụng quản lý mạng dựa trên snmp. Tuy nhiên, sau một thời gian sử dụng, rrdtool thật không ưng ý, vì cách hiển thị của nó quá đơn điệu trên file ảnh tỉnh png. Thêm nữa, cơ sở dữ liệu thời gian thực rrdtool đòi hỏi xác định thời gian cập nhật ngay lúc khởi tạo, điều này có thể không thích hợp với mạng cảm biến, khi mà tần số cập nhật có thể thay đổi thường xuyên.

Tôi không muốn dùng flash.

Javascript là sự lựa chọn tiếp theo. Các thư viện, thương mại và miễn phí, js vẽ đồ thị rất nhiều. Sau một hồi cân đo đong đếm, tôi dừng lại với highcharts. Highcharts tính phí cho sản phẩm thương mại, và miễn phí cho sản phẩm “dùng chơi”. Nghĩa là tôi có thể sử dụng miễn phí vào thời điểm hiện nay🙂. Hiển thị của highcharts ở dạng 2D, khá đẹp, và có tính tương tác với người dùng.

Tôi tạo một project django với highchart, và khá bất ngờ  với sự đơn giản mà highchart api đem lại (Project nằm ở https://github.com/nqd/chartit-exam).

Một công cụ khác tôi rất thích khi đọc về khả năng của nó, nhưng chưa sử dụng được là graphite. Graphite được xây dựng dựa trên tư tưởng cơ sở dữ liệu thời gian thực của rrdtool, nhưng phần đồ thị kết hơp giữa file ảnh tĩnh và js nên mang tính tương tác cao.

Nếu bạn thấy tôi bỏ sót công cụ nào, rất vui lòng được trao dổi cùng.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s