2011-06-23 90 views
13

Có thư viện Javascript quan trọng nào cho biểu đồ và biểu diễn mạng, với thuật toán thông dụng, tối ưu hóa, v.v. không? Tôi đang tưởng tượng một cái gì đó giống như C++ lemon library, với tìm kiếm đồ thị, đường đi ngắn nhất, lưu lượng tối đa, v.v.Thư viện Javascript cho đồ thị (theo nghĩa toán học)

Google vẽ trống, vì kết quả hoàn toàn bị ngập với các thư viện vẽ biểu đồ và biểu đồ.

Trả lời

2

Bạn có thể quan tâm đến Cytoscape.js, thư viện lý thuyết đồ thị JS nguồn mở. Nó có thể chạy không đầu hoặc với một hình ảnh tương tác. Nó có thể tạo kiểu trong các tệp giống như CSS, đã tạo sẵn các cử chỉ, hỗ trợ cho các thiết bị cảm ứng, node.js, v.v.

Có một loạt các thuật toán ngay bây giờ và sẽ có nhiều thuật toán ngắn hơn. PageRank, vv

http://cytoscape.github.io/cytoscape.js/

Disclaimer: tôi làm việc trên dự án

4

Hãy xem http://www.graphdracula.net/

Nó có một số thuật toán bao gồm:

  • Bellman-Ford
  • Dijkstra
  • floyd-warshall
+0

Tôi thấy điều này và loại bỏ nó như là một thư viện vẽ đồ thị khác. Có lẽ tôi đã hơi sai - tuy nhiên, xem [nguồn] (https://github.com/strathausen/dracula/blob/master/js/dracula_algorithms.js) - các thuật toán chưa thực sự được viết! – jameshfisher

+0

Tôi tin rằng tất cả những gì tôi đã đề cập đã được thực hiện trong phiên bản chụp nhanh. Các lưu lượng mạng chưa được nêu ra. Mặc dù thành thật mà nói, nó sẽ không khó khăn để thực hiện chúng cho mình. Hãy suy nghĩ về nó như là một bài tập tốt/vui vẻ :) – tskuzzy

+0

Với tất cả thời gian trên thế giới, nó sẽ là một bài tập tuyệt vời. – jameshfisher

-7

Nghiên cứu một đồ thị, thường đòi hỏi rất nhiều nỗ lực máy tính, đặc biệt cho đồ thị lớn (tôi không biết loại bạn đang cố phân tích) nhưng nếu nó đơn giản, có thể bạn không cần thư viện.
Bạn sẽ không bao giờ tìm thấy những gì bạn đang tìm kiếm ... nó thậm chí còn khó khăn để tìm một cái gì đó như thế cho các ngôn ngữ phổ biến, tôi không nghĩ rằng một ngôn ngữ kịch bản nghiên cứu để làm cho trang HTML có thể giúp bạn, expecially vì nó cuộc sống được nhúng trong một trình duyệt không được nghiên cứu hoặc không có khả năng để có hiệu suất phù hợp với mục đích của bạn.
Tôi chắc chắn rằng bạn chỉ có cách lập trình và thực hiện phân tích trên biểu đồ thông qua ngôn ngữ lập trình phía máy chủ, trong trường hợp này bạn sẽ có một máy chuyên dụng thực hiện thao tác trên biểu đồ và có ý nghĩa hơn.
Tôi đề xuất bạn .NET vì bạn có thể sử dụng thư viện chanh của mình ... Bằng cách này bạn đã từng thử SNAPhttp://snap.stanford.edu/ đó là thư viện tốt nhất mà bạn từng thấy, tôi thực sự đề xuất thư viện C++ ... nó thiếu tài liệu.
Tôi xin lỗi vì javascript, nhưng bạn sẽ nhận ra rằng tôi là đúng

+0

"khó tìm một cái gì đó như thế cho các ngôn ngữ thông dụng" - không thực sự. [Thêm C++] (http: //www.boost.org/doc/libs/1_46_1/libs/graph/doc/index.html), [Java] (http://www.jgrapht.org/), [Python] (http://code.google.com/p/python-graph /), [Ruby] (http://rgl.rubyforge.org/rgl/index.html), ... Tôi có thể tiếp tục. Đồ thị là cấu trúc dữ liệu cơ bản. "ngôn ngữ kịch bản được nghiên cứu để hiển thị trang HTML [...] nó được nhúng trong trình duyệt" - contra: NodeJS, v.v. Trong mọi trường hợp, tại sao các ứng dụng web không bao giờ yêu cầu đồ thị? – jameshfisher

+0

Nếu bạn đọc kỹ bài viết của tôi, bạn sẽ nhận thấy rằng tôi nói về thư viện, vì vậy rất khó để tìm thấy một số thư viện nâng cao sẵn có cho các ngôn ngữ phổ biến (tôi đã tìm thấy một số trong C++ ít trong Java và không performan). Tôi không biết ý bạn là gì, nhưng đối với thư viện của máy phân tích đồ thị, tôi có nghĩa là có thể lấy được đường kính của mạng xã hội, tính toán khoảng cách từ bạn và người khác hoặc đếm cụm bên cạnh một mạng lớn. Bạn có thể thực hiện một chương trình javascript rằng nếu bạn vứt đi một nửa của nút của một mạng xã hội mở nói LiveJournal, nó đếm có bao nhiêu cụm tồn tại. Chúc may mắn ! –

+0

Tôi chưa bao giờ nói rằng ứng dụng web không bao giờ yêu cầu đồ thị, tôi có nghĩa là xử lý lý thuyết đồ thị bằng ngôn ngữ kịch bản phía máy khách không thể đơn giản nếu biểu đồ nhất quán. –

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