2011-08-25 36 views
8

Tôi có một chuỗi Markov mà tôi muốn đại diện cho đồ họa trong javascript. Tôi cần đại diện cho các nút, liên kết và xác suất chuyển đổi. Có lẽ cái gì đó như một trong hai sơ đồ sau đây:Chuỗi markov đồ họa trong javascript

enter image description here enter image description here

Tìm một thư viện hình ảnh tốt (như Raphael) không phải là vấn đề. Vấn đề, đối với tôi, là tìm một cách để đảm bảo các nút được đặt ra độc đáo, với một số lượng tối thiểu các dòng vượt qua ở phía trước của các nút hoặc các dòng khác. Một cái gì đó giống như "Lay out diagram" tùy chọn trong OmniGraffle (Tôi chắc rằng có một tính năng tương tự trong Visio).

Có thư viện JS nào có thể làm điều này cho tôi hay không và liệu có ai có ý tưởng gì về cách tiếp cận vấn đề như thế này không? Lưu ý rằng các chuỗi markov của tôi có thể phức tạp hơn nhiều so với các ví dụ ở trên.

+0

dự án diễn ra như thế nào? –

+0

@MichaelPaulukonis tôi đã kết thúc bằng cách sử dụng graphdracula (xem bình luận của tôi để câu trả lời của Femi). Nó hoạt động, nhưng không hoàn toàn tốt đẹp như tôi đã hy vọng. Có một số vấn đề khi một nút trỏ đến chính nó, hoặc khi hai nút tạo thành một vòng lặp. Vị trí của các xác suất chuyển đổi đôi khi không rõ dòng nào thuộc về nó. Tuy nhiên, tôi không thể tìm thấy bất cứ điều gì tốt hơn, do đó, nó được thực hiện. – Jeff

+0

là mã của bạn có sẵn không? Tôi muốn quan tâm đến việc ném một số thứ vào nó để xem những gì các chuỗi trông giống như (không liên quan đến học tập). –

Trả lời

3

Bạn có thể làm quen với một trong các thư viện biểu đồ được chỉ dẫn như D3 hoặc một trong số directed graph layers on Raphael.

+0

+1 khi sử dụng Raphael. 2.0 cũng đang trên đường: https://github.com/DmitryBaranovskiy/raphael/tree/2.0 – Hyangelo

+0

Cảm ơn! Tôi đoán nó giúp để biết các thuật ngữ đúng - googling "lực lượng chỉ đạo đồ thị" đã giúp tôi tìm thấy một vài lựa chọn thay thế khác là tốt, và graphdracula.net dường như để phù hợp với nhu cầu của tôi. thejit.org là một thứ khác cho những người tìm kiếm các giải pháp thay thế. – Jeff

+0

Hehe. Rất vui được giúp cung cấp đúng chính tả để chèn vào Google. – Femi

0

Viz.js có thể được sử dụng cho điều này, nó là một cổng Javascript của Graphviz.

2

Tôi hiện đang sử dụng mxGraph cho mục đích này. Nó không phải là miễn phí, nhưng đó là một trường hợp bạn nhận được những gì bạn phải trả cho.