如何在R语言中使用ggplot2将海豚图片作为网络图的节点形状
R语言ggplot2网络图自定义图片节点实现方案
你只需要将原有代码中的geom_nodes层替换为ggimage包提供的geom_image层即可,无需提前读取PNG文件,调整后的完整代码如下:
library("ggimage") library(network) library(ggnetwork) library(ggplot2) # 读取节点、边数据构建网络对象 nodes <- read.csv(file='dolphin_nodes.csv') edges <- read.csv(file='dolphin_edges.csv') net <- network(x=edges, vertices=nodes, directed = FALSE) n <- ggnetwork(net) # 绘图 ggplot(n, aes(x=x,y=y, xend=xend, yend=yend)) + # 先画边 geom_edges(color = "grey70") + # 用海豚图片替换节点,size控制图片大小,可根据需求调整 geom_image(aes(size = group), image = "dolphin.png") + # 原有边文本层 geom_edgetext(aes(label = group), color = "white", fill = "grey25") + # 主题设置 theme_minimal() + theme(axis.text = element_blank(), axis.title = element_blank(), panel.background = element_rect(fill = "grey25"), panel.grid = element_blank())
如果你需要保留按group区分颜色的效果,可以在geom_image下方加一层半透明的geom_point,将颜色映射放在这一层即可。
参考素材
内容的提问来源于stack exchange,提问作者Millie Nguyen
相关产品推荐
相关产品推荐


