Bagaimana cara menghidupkan jaringan sosial?

11

Saya mencari perpustakaan / alat untuk memvisualisasikan bagaimana jaringan sosial berubah ketika node / tepi baru ditambahkan ke dalamnya.

Salah satu solusi yang ada adalah SoNIA: Social Network Image Animator . Mari kita membuat film seperti ini .

Dokumentasi SoNIA mengatakan bahwa itu rusak saat ini, dan selain itu saya lebih suka solusi berbasis JavaScript. Jadi, pertanyaan saya adalah: apakah Anda terbiasa dengan alat apa pun atau apakah Anda dapat mengarahkan saya ke beberapa perpustakaan yang akan membuat tugas ini semudah mungkin?

Tepat setelah memposting pertanyaan ini saya akan menggali sigma.js , jadi harap pertimbangkan perpustakaan ini tertutup.

Secara umum, data input saya akan menjadi seperti ini:

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

Jadi, di sini kita memiliki tiga titik waktu (1, 2, 3), tiga simpul (A, B, C), dan tiga sisi, yang mewakili penutupan triadik antara tiga simpul yang dipertimbangkan.

Selain itu, setiap node akan memiliki dua atribut (usia dan jenis kelamin), jadi saya ingin dapat mengubah bentuk / warna node.

Juga, setelah menambahkan node baru, akan sempurna untuk memiliki beberapa ForceAtlas2 atau algoritma serupa untuk menyesuaikan tata letak grafik.

Wojciech Walczak
sumber

Jawaban:

11

Animasi mewah itu keren

Saya sangat terkesan ketika saya melihat animasi ini dari wacana git repositori. Mereka menggunakan Gourse yang khusus untuk git. Tetapi mungkin memberikan ide tentang bagaimana untuk mewakili dinamika pertumbuhan.

Anda dapat membuat animasi dengan matplotlib

Jawaban stackoverflow ini sepertinya menunjuk pada solusi python / networkx / matplotlib.

Tapi D3.js menyediakan interaksi

Jika Anda mencari solusi berbasis web maka d3.js sangat bagus. Lihat ini , ini dan ini misalnya. Lihat juga pertanyaan stackoverflow ini , jawaban yang diterima menunjuk ke D3.js lagi.

Kesimpulan

Saya akan tertarik ke opsi python / networkx untuk analisis jaringan (mungkin untuk menambahkan atribut ke file data mentah Anda misalnya). Kemudian, untuk visualisasi dan penyebaran D3.js sempurna. Anda mungkin terkejut betapa mudahnya menulis d3.js begitu Anda masuk ke dalamnya. Saya percaya ini bahkan bekerja di dalam sebuah notebook ipython!

Graeme Stuart
sumber
Terima kasih, saya suka solusi Python / networkx / matplotlib ini karena ini adalah lingkungan kerja default saya, dan mudah untuk membuat gif dari kode ini. Namun, sesuatu yang terlihat lebih bagus di Web akan mengalahkan solusi ini :)
Wojciech Walczak
5

Dugaan pertama saya adalah memvisualisasikan jejaring sosial di Tableau .

Dan khususnya: membangun grafik jaringan di Tableau .

Yang Anda butuhkan adalah menambahkan dimensi waktu ke bagian "Halaman" untuk dapat melihat dinamika perubahan jaringan.

Ini adalah layar dari tautan di atas. masukkan deskripsi gambar di sini

IharS
sumber
1
Hai, terima kasih atas tip ini, tapi saya lebih suka sesuatu yang mudah dipublikasikan di Web dalam bentuk yang dinamis. Juga, saya lebih suka solusi gratis, sementara Tableau - koreksi saya jika saya salah - hanya tersedia sebagai versi percobaan.
Wojciech Walczak
Ini juga memiliki edisi "Publik", yang berarti Anda harus menyimpan / membagikan hasil Anda di web, dan tidak dapat menyimpannya secara lokal.
IharS
2
@WojciechWalczak Mungkin gephi dapat digunakan sebagai ganti Tableau.
Amir Ali Akbari
5

Ternyata tugas ini cukup mudah untuk dicapai dengan menggunakan vis.js . Ini adalah contoh kode terbaik yang saya temukan.

Contoh dari apa yang saya bangun di sini ada di sini (gulir ke bagian bawah posting ini). Grafik ini mewakili pertumbuhan sub-jaringan teman-teman Facebook. Titik hijau adalah perempuan, yang biru adalah laki-laki. Semakin gelap warnanya, semakin tua pengguna. Dengan mengklik "Dodaj węzły" Anda dapat menambahkan lebih banyak node dan tepi ke grafik.

Bagaimanapun, saya masih tertarik dengan cara lain untuk menyelesaikan tugas ini, jadi saya tidak akan menerima jawaban apa pun untuk saat ini.

Terima kasih atas kontribusi Anda!

Wojciech Walczak
sumber
tautan Anda rusak
user1870400