Etkileşimli görselleştirmeler

Vaka Çalışmaları: R ile Ağ Analizi

Edmund Hart

Instructor

Biraz veri üretme

library(igraph)
library(ggnetwork)
library(ggiraph)
library(htmlwidgets)
library(networkD3)

# Rastgele grafik oluştur
rand_g <- erdos.renyi.game(30, 0.12, "gnp", directed = FALSE)
rand_g <- simplify(rand_g)

V(rand_g)$cent <- betweenness(rand_g)
Vaka Çalışmaları: R ile Ağ Analizi

ggiraph ile etkileşimli grafikler

# Grafiği ggplot2 ve ggnetwork ile çiz
g <- ggplot(ggnetwork(rand_g), 
            aes(x = x, y = y, xend = xend, yend = yend)) + 
     geom_edges(color = "black") +
     geom_nodes(aes(size = cent))+ theme_blank() + 
     guides(size = guide_legend(title = "Centrality"))

# ggiraph nesnesi oluştur my_gg <- g + geom_point_interactive(aes(tooltip = round(cent, 2)), size = 2)
# ggiraph nesnesini göster ggiraph(code = print(my_gg))
Vaka Çalışmaları: R ile Ağ Analizi

Vaka Çalışmaları: R ile Ağ Analizi

ggiraph özelleştirme

my_gg <- g + geom_point_interactive(aes(tooltip = round(cent, 2),
                                        data_id = round(cent, 2)), 
                                    size = 2) 

hover_css = "cursor:pointer;fill:red;stroke:red;r:5pt"

ggiraph(code = print(my_gg),
        hover_css = hover_css,
        tooltip_offx = 10, 
        tooltip_offy = -10)
Vaka Çalışmaları: R ile Ağ Analizi

Vaka Çalışmaları: R ile Ağ Analizi

networkD3 ile çizim

# igraph nesnesini dönüştür
nd3 <- igraph_to_networkD3(rand_g)

# Basit bir ağ oluştur
simpleNetwork(nd3$links)

Vaka Çalışmaları: R ile Ağ Analizi

Daha karmaşık networkD3

# Öznitelikler ekle: group topluluk, cent merkezilik.
nd3$nodes$group = V(rand_g)$comm
nd3$nodes$cent = V(rand_g)$cent

# Grafiği çiz forceNetwork(Links = nd3$links, Nodes = nd3$nodes, Source = 'source', Target = 'target', NodeID = 'name', Group = 'group', Nodesize = 'cent', legend = T, fontSize = 20)
Vaka Çalışmaları: R ile Ağ Analizi

Vaka Çalışmaları: R ile Ağ Analizi

Hadi pratik yapalım!

Vaka Çalışmaları: R ile Ağ Analizi

Preparing Video For Download...