美文网首页
R语言绘制合作关系网络图(圆形)

R语言绘制合作关系网络图(圆形)

作者: 西北工作室 | 来源:发表于2022-09-21 23:40 被阅读0次

数据准备(数据为矩阵的表格):

windowsFonts(SH = windowsFont("Times New Roman"))#设置字体
library(openxlsx)
df=read.xlsx("data.xlsx",rowNames = T)
head(df)
美国       中国  英国  伊朗 沙特阿拉伯  澳大利亚  丹麦  越南  韩国  芬兰  希腊
美国         21   14    1    3          3        1    1    0    0    0    0
中国         14   19    1    1          2        0    2    0    0    0    0
英国          1    1   14    7          3        4    3    3    0    2    2
伊朗          3    1    7   13          4        0    3    4    0    2    0
沙特阿拉伯    3    2    3    4          7        0    1    3    0    1    0
澳大利亚      1    0    4    0          0        5    0    0    0    0    2

构建点边文件:

edges=reshape2::melt(as.matrix(df))
colnames(edges)=c("from","to","r")
edges=subset(edges,!edges$r=="0") #去掉连接为0的边
nodes=data.frame(name=unique(c(edges$from,edges$to)))
nodes$degree=degree(g)
g <- tbl_graph(nodes = nodes, edges = edges)
# 自定义颜色映射
mycol=c("#5599FF","#00AA00","#FF8888",
        "#FFDD55","#DC143C","#FF8C00",
        "#9ACD32", "#7700FF","#00AA88",
        "#CCCCFF","#77DDFF","#FFDD65",
        "#AAFFEE","steelblue","#800000")

绘制图形

p=ggraph(g,layout='linear',circular = TRUE) +
  # geom_edge_link(aes(colour = class,width=abs(r)),alpha = 0.5) +直线
  # geom_edge_arc(alpha = 0.5) + #设置链接线为曲线,
  geom_edge_arc(mapping = aes(edge_width = log10(r+1)
                               ),edge_color = "green4",
                 # arrow = arrow(length = unit(4, "mm")),
                 start_cap = circle(3, "mm"),
                 end_cap = circle(3, "mm"),
                 alpha = 0.5) +
  geom_node_point(aes(size=degree,colour = name),
                  alpha = 1) +
  
  geom_node_text(aes(x = x, y=y, label=name),
                 angle=1,hjust=0.5, fontface="bold",size=3,family="SH") + # 设置点的注释
  scale_size_continuous(range = c(1,15)) +  #设置点大小范围
  scale_color_manual(values =mycol)  +
  scale_edge_width_continuous(range = c(0.5,1.5)) +
  theme_graph()+theme(legend.position="none")
  # guides(color=F,edge_width=guide_legend(title=NULL),size=guide_legend(title=NULL))
  # theme(legend.position="bottom") 图例设置
p

1663861207234.png

@西北工作室(TB)

相关文章

网友评论

      本文标题:R语言绘制合作关系网络图(圆形)

      本文链接:https://www.haomeiwen.com/subject/flmgortx.html