R_tips_5:如何在ggraph中自定義布局

1.引言

ggraph是R語(yǔ)言中一款功能強(qiáng)大的社會(huì)網(wǎng)絡(luò)繪圖工具。用戶可以基于類似ggplot2的邏輯進(jìn)行輕松繪圖,例如:

library(ggraph, tidygraph)

# generate the data
gr1 <- create_notable('bull') %>% 
  mutate(name = letters[1:5])

#plot
gr1 %>% 
  ggraph(layout = 'kk') + 
  geom_edge_link() + 
  geom_node_point(size = 8, colour = 'steelblue') +
  geom_node_text(aes(label = name), colour = 'white', vjust = 0.4) + 
  ggtitle('automatic layout') + 
  theme_graph()
Fig.1

然而,有時(shí)我們希望手動(dòng)對(duì)節(jié)點(diǎn)的位置進(jìn)行微調(diào),例如,我們覺得上圖中的節(jié)點(diǎn)d有些太向左上了,最好向下,再往右調(diào)整一些,這時(shí)該怎么辦?

2. 解決方法

先創(chuàng)建layout:

gr1_layout <- create_layout(gr1, layout = "kk")

查看自動(dòng)生成的每個(gè)節(jié)點(diǎn)的xy坐標(biāo):

>   gr1_layout
           x           y name .ggraph.orig_index circular .ggraph.index
1  0.6484507  0.08606775    a                  1    FALSE             1
2 -0.1057830  0.07934361    b                  2    FALSE             2
3  0.2814265 -0.57287605    c                  3    FALSE             3
4 -0.7282047  0.52323288    d                  4    FALSE             4
5  0.3731192 -1.33184827    e                  5    FALSE             5

可以看到,名稱為d的節(jié)點(diǎn),坐標(biāo)為(-.7282047, .52323288),我們只需稍作調(diào)整,再繪圖就可以:

# 調(diào)整
gr1_layout[4,1:2] <- c(-.3,  -1)

# 繪圖
  ggraph(gr1_layout) + 
  geom_edge_link() + 
  geom_node_point(size = 8, colour = 'steelblue') +
  geom_node_text(aes(label = name), colour = 'white', vjust = 0.4) + 
  ggtitle('Manual Layout') + 
  theme_graph()
Fig.2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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