Làm thế nào để làm tăng sự phát triển của một mạng xã hội?


11

Tôi đang tìm kiếm một thư viện / công cụ để hình dung cách mạng xã hội thay đổi khi các nút / cạnh mới được thêm vào nó.

Một trong những giải pháp hiện có là SoNIA: Animator Image Animator . Nó cho phép bạn làm những bộ phim như thế này .

Tài liệu của SoNIA nói rằng hiện tại nó đã bị hỏng và ngoài ra, tôi thích giải pháp dựa trên JavaScript hơn. Vì vậy, câu hỏi của tôi là: bạn có quen thuộc với bất kỳ công cụ nào không hoặc bạn có thể chỉ cho tôi một số thư viện để thực hiện công việc này dễ dàng nhất có thể không?

Ngay sau khi đăng câu hỏi này, tôi sẽ tìm hiểu về sigma.js , vì vậy vui lòng xem xét thư viện này.

Nói chung, dữ liệu đầu vào của tôi sẽ giống như thế này:

time_elapsed; node1; node2
1; A; B
2; A; C
3; B; C

Vì vậy, ở đây chúng ta có ba điểm trong thời gian (1, 2, 3), ba nút (A, B, C) và ba cạnh, đại diện cho một đóng ba lần giữa ba nút được xem xét.

Hơn nữa, mỗi nút sẽ có hai thuộc tính (tuổi và giới tính), vì vậy tôi muốn có thể thay đổi hình dạng / màu sắc của các nút.

Ngoài ra, sau khi thêm một nút mới, sẽ rất hoàn hảo khi có một số thuật toán ForceAtlas2 hoặc tương tự để điều chỉnh bố cục của biểu đồ.

Câu trả lời:


11

Hoạt hình lạ mắt là mát mẻ

Tôi đã rất ấn tượng khi nhìn thấy hình ảnh động này của kho lưu trữ diễn ngôn git. Họ đã sử dụng bầu bí dành riêng cho git. Nhưng nó có thể đưa ra ý tưởng về cách thể hiện sự năng động của tăng trưởng.

Bạn có thể tạo hình động với matplotlib

Câu trả lời stackoverflow này dường như chỉ ra một giải pháp python / networkx / matplotlib.

Nhưng D3.js cung cấp sự tương tác

Nếu bạn đang tìm kiếm một giải pháp dựa trên web thì d3.js là tuyệt vời. Xem cái này , cái nàycái này chẳng hạn. Xem thêm câu hỏi stackoverflow này , câu trả lời được chấp nhận lại trỏ đến D3.js.

Phần kết luận

Tôi sẽ được rút ra về các tùy chọn python / networkx để phân tích mạng (có thể để thêm các thuộc tính vào tệp dữ liệu thô của bạn chẳng hạn). Sau đó, để trực quan hóa và phổ biến D3.js là hoàn hảo. Bạn có thể ngạc nhiên về việc viết d3.js dễ dàng như thế nào khi bạn vào đó. Tôi tin rằng nó thậm chí hoạt động trong một máy tính xách tay ipython!


Cảm ơn, tôi thích giải pháp Python / networkx / matplotlib này vì đây là môi trường làm việc mặc định của tôi và thật dễ dàng để tạo một gif từ mã này. Tuy nhiên, một cái gì đó trông đẹp hơn trên Web sẽ đánh bại giải pháp này :)
Wojciech Walczak

5

Dự đoán đầu tiên của tôi là trực quan hóa mạng xã hội ở Tableau .

Và đặc biệt: xây dựng đồ thị mạng trong Tableau .

Những gì bạn cần là thêm kích thước thời gian vào phần "Trang" để có thể thấy động lực thay đổi mạng.

Đây là màn hình từ liên kết ở trên. nhập mô tả hình ảnh ở đây


1
Xin chào, cảm ơn vì mẹo này, nhưng tôi thích thứ gì đó dễ dàng công khai trên Web ở dạng động. Ngoài ra, tôi thích các giải pháp miễn phí, trong khi Tableau - sửa tôi nếu tôi sai - chỉ có sẵn dưới dạng phiên bản dùng thử.
Wojciech Walczak

Nó cũng có phiên bản "Công khai", có nghĩa là bạn phải lưu trữ / chia sẻ kết quả của mình trên web và không thể lưu nó cục bộ.
IharS

2
@WojciechWalczak Có lẽ gephi có thể được sử dụng thay vì Tableau.
Amir Ali Akbari

5

Hóa ra là nhiệm vụ này là khá dễ dàng để thực hiện bằng vis.js . Đây là mã ví dụ tốt nhất mà tôi đã tìm thấy.

Ví dụ về những gì tôi đã xây dựng dựa trên điều này là ở đây (cuộn xuống cuối bài này). Biểu đồ này thể hiện sự phát triển của một mạng con của bạn bè trên Facebook. Chấm xanh là con cái, con xanh là con đực. Màu càng đậm, người dùng càng già. Bằng cách nhấp vào "Dodaj węzły", bạn có thể thêm nhiều nút và cạnh vào biểu đồ.

Dù sao, tôi vẫn quan tâm đến những cách khác để hoàn thành nhiệm vụ này, vì vậy tôi sẽ không chấp nhận bất kỳ câu trả lời nào như bây giờ.

Cảm ơn những đóng góp của bạn!


liên kết của bạn bị hỏng
user1870400
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.