R語言繪制合作關(guān)系網(wǎng)絡(luò)圖(圓形)

數(shù)據(jù)準備(數(shù)據(jù)為矩陣的表格):

windowsFonts(SH = windowsFont("Times New Roman"))#設(shè)置字體
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

構(gòu)建點邊文件:

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) + #設(shè)置鏈接線為曲線,
  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") + # 設(shè)置點的注釋
  scale_size_continuous(range = c(1,15)) +  #設(shè)置點大小范圍
  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") 圖例設(shè)置
p

1663861207234.png

@西北工作室(TB)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 7.網(wǎng)絡(luò)圖 同地圖的空間數(shù)據(jù)一樣,網(wǎng)絡(luò)圖形在可視化領(lǐng)域占據(jù)了特殊部分,但空間數(shù)據(jù)在投影的使用上與常規(guī)繪圖大不相同,...
    denghb001閱讀 4,488評論 0 15
  • 挖掘社會關(guān)系網(wǎng)絡(luò),助你洞若觀火。 需求 最近有個學(xué)生問我,如何繪制交互式社會網(wǎng)絡(luò)圖(Interactive Soc...
    王樹義閱讀 12,974評論 5 147
  • 熱圖注釋 前面我們介紹了如何繪制聚類熱圖,在這一節(jié)我們將介紹如何添加注釋 熱圖的注釋是聚類熱圖的重要組成部分,能夠...
    名本無名閱讀 3,541評論 1 20
  • 在學(xué)習(xí)R的時候,R的包眾多,很多時候?qū)τ诔鯇W(xué)者會造成很大的困擾就是不知道用什么樣的包比較合適。我會在不斷使用...
    果果哥哥BBQ閱讀 16,464評論 0 62
  • 圖形初步 在本章中,我們將討論處理圖形的一般方法。我們首先探討如何創(chuàng)建和保存圖形,然后關(guān)注如何修改那些存在于所有圖...
    jplee閱讀 5,329評論 0 12

友情鏈接更多精彩內(nèi)容