上次介绍了使用geomnet包绘制网络图的文章geomnet | 这样惊艳的网络图一键搞定,真好用...今天继续给大家推荐另外一个可视化工具-「ggnet2」
ggnet2包是一个将网络对象绘制成 ggplot2绘图对象的可视化工具包,它接受任何可以强制为网络类的对象,包括邻接矩阵或入射矩阵、边列表或单模igraph网络对象。
可以通过安装GGally包直接安装,也可以单独安装,如下:
install.packages("GGally")
library(GGally)
#或者单独安装
devtools::install_github("briatte/ggnet")
# random graph
net = rgraph(10, mode = "graph", tprob = 0.5)
net = network(net, directed = FALSE)
# vertex names
network.vertex.names(net) = letters[1:10]
ggnet2(net)
Random graph
修改颜色样式:
ggnet2(net, size = 6, color = rep(c("tomato", "steelblue"), 5))
分类绘制
ggnet2(net, color = "phono", palette = "Set2")
节点映射大小变量:
ggnet2(net, size = "degree")
还可以修改节点样式:
ggnet2(net, color = "phono", shape = "phono")
ggnet2(net, color = x, color.legend = "period", palette = col,
edge.alpha = 1/4, edge.size = "weight",
size = "outdegree", max_size = 4, size.cut = 3,
legend.size = 12, legend.position = "bottom") +
coord_equal()
# network object
net = network(e, directed = TRUE)
# party affiliation
x = data.frame(Twitter = network.vertex.names(net))
x = merge(x, v, by = "Twitter", sort = FALSE)$Groupe
net %v% "party" = as.character(x)
# color palette
y = RColorBrewer::brewer.pal(9, "Set1")[ c(3, 1, 9, 6, 8, 5, 2) ]
names(y) = levels(x)
# network plot
ggnet2(net, color = "party", palette = y, alpha = 0.75, size = 4, edge.alpha = 0.5)
更多关于ggnet2包的使用语法和可视化案例,可阅读:ggnet2官网[1]