Tata letak jaringan igraph
Paket igraph menyediakan beberapa algoritme tata letak bawaan untuk visualisasi jaringan. Bergantung pada ukuran suatu jaringan, tata letak yang berbeda dapat lebih efektif dalam menyampaikan struktur jaringan. Idealnya, tata letak terbaik adalah yang meminimalkan jumlah sisi yang saling berpotongan dalam jaringan. Pada latihan ini Anda akan mengeksplorasi beberapa dari banyak algoritme tata letak bawaan. Menjalankan ulang kode untuk setiap plot akan menghasilkan variasi yang sedikit berbeda dari jenis tata letak yang sama. Melakukan ini beberapa kali dapat membantu Anda menemukan visualisasi yang paling baik untuk jaringan Anda.
Latihan ini merupakan bagian dari kursus
Analisis Jaringan di R
Instruksi latihan
- Dalam fungsi plot, ubah argumen
layoutmenjadilayout_in_circle()untuk menghasilkan jaringan berbentuk lingkaran. - Dalam fungsi plot, ubah argumen
layoutmenjadilayout_with_fr()untuk menghasilkan jaringan dengan tata letak Fruchterman–Reingold. - Anda juga dapat menentukan tata letak dengan memberikan matriks koordinat (x, y) untuk setiap simpul. Di sini Anda menggunakan fungsi
layout_as_tree()untuk membuat matriksmberisi koordinat. Lalu berikanmke argumenlayoutdalamplot()untuk memplotnya. - Memilih tata letak yang tepat bisa membingungkan. Untungnya
igraphmemiliki fungsilayout_nicely()yang berupaya memilih fungsi tata letak paling sesuai untuk objek graf tertentu. Gunakan fungsi ini untuk menghasilkan matriksm1dan plot jaringan menggunakan koordinat tersebut.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
library(igraph)
# Plot the graph object g1 in a circle layout
plot(g1, vertex.label.color = "black", layout = ___(g1))
# Plot the graph object g1 in a Fruchterman-Reingold layout
plot(g1, vertex.label.color = "black", layout = ___(g1))
# Plot the graph object g1 in a Tree layout
m <- ___(g1)
plot(g1, vertex.label.color = "black", layout = m)
# Plot the graph object g1 using igraph's chosen layout
___ <- layout_nicely(___)
plot(___, vertex.label.color = "black", layout = ___)