Trực quan tương tác

Các nghiên cứu tình huống: Phân tích mạng lưới với R

Edmund Hart

Instructor

Tạo dữ liệu mẫu

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

# Tạo đồ thị ngẫu nhiên
rand_g <- erdos.renyi.game(30, 0.12, "gnp", directed = FALSE)
rand_g <- simplify(rand_g)

V(rand_g)$cent <- betweenness(rand_g)
Các nghiên cứu tình huống: Phân tích mạng lưới với R

Biểu đồ tương tác với ggiraph

# Vẽ đồ thị với ggplot2 và ggnetwork
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"))

# Tạo đối tượng ggiraph my_gg <- g + geom_point_interactive(aes(tooltip = round(cent, 2)), size = 2)
# Hiển thị đối tượng ggiraph ggiraph(code = print(my_gg))
Các nghiên cứu tình huống: Phân tích mạng lưới với R

Các nghiên cứu tình huống: Phân tích mạng lưới với R

Tùy biến ggiraph

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)
Các nghiên cứu tình huống: Phân tích mạng lưới với R

Các nghiên cứu tình huống: Phân tích mạng lưới với R

Vẽ với networkD3

# Chuyển đổi đối tượng igraph
nd3 <- igraph_to_networkD3(rand_g)

# Tạo mạng đơn giản
simpleNetwork(nd3$links)

Các nghiên cứu tình huống: Phân tích mạng lưới với R

networkD3 phức tạp hơn

# Thêm thuộc tính: group là cộng đồng, cent là độ trung tâm.
nd3$nodes$group = V(rand_g)$comm
nd3$nodes$cent = V(rand_g)$cent

# Vẽ đồ thị forceNetwork(Links = nd3$links, Nodes = nd3$nodes, Source = 'source', Target = 'target', NodeID = 'name', Group = 'group', Nodesize = 'cent', legend = T, fontSize = 20)
Các nghiên cứu tình huống: Phân tích mạng lưới với R

Các nghiên cứu tình huống: Phân tích mạng lưới với R

Cùng luyện tập nào!

Các nghiên cứu tình huống: Phân tích mạng lưới với R

Preparing Video For Download...