当前位置:蜗牛素材网>综合资讯>图文>正文

r语言做出来的图,如何在R语言中定制树状图

人气:122 ℃/2024-04-04 11:00:56

背景介绍

今天我们来介绍一下如何使用R语言绘制树状图。

软件介绍

[软件名称]:R&RStudio

绘图教程

1.首先加载需要的R包

library(ggraph)library(igraph)library(tidyverse)theme_set(theme_void())

2.创建一个包含edge的列表

d1 <- data.frame(from="origin", to=paste("group", seq(1,7), sep=""))d2 <- data.frame(from=rep(d1$to, each=7), to=paste("subgroup", seq(1,49), sep="_"))edges <- rbind(d1, d2)edges## from to## 1 origin group1## 2 origin group2## 3 origin group3## 4 origin group4## 5 origin group5## 6 origin group6## 7 origin group7## 8 group1 subgroup_1## 9 group1 subgroup_2## 10 group1 subgroup_3## 11 group1 subgroup_4## 12 group1 subgroup_5## 13 group1 subgroup_6## 14 group1 subgroup_7## 15 group2 subgroup_8## 16 group2 subgroup_9## 17 group2 subgroup_10## 18 group2 subgroup_11## 19 group2 subgroup_12## 20 group2 subgroup_13## 21 group2 subgroup_14## 22 group3 subgroup_15## 23 group3 subgroup_16## 24 group3 subgroup_17## 25 group3 subgroup_18## 26 group3 subgroup_19## 27 group3 subgroup_20## 28 group3 subgroup_21## 29 group4 subgroup_22## 30 group4 subgroup_23## 31 group4 subgroup_24## 32 group4 subgroup_25## 33 group4 subgroup_26## 34 group4 subgroup_27## 35 group4 subgroup_28## 36 group5 subgroup_29## 37 group5 subgroup_30## 38 group5 subgroup_31## 39 group5 subgroup_32## 40 group5 subgroup_33## 41 group5 subgroup_34## 42 group5 subgroup_35## 43 group6 subgroup_36## 44 group6 subgroup_37## 45 group6 subgroup_38## 46 group6 subgroup_39## 47 group6 subgroup_40## 48 group6 subgroup_41## 49 group6 subgroup_42## 50 group7 subgroup_43## 51 group7 subgroup_44## 52 group7 subgroup_45## 53 group7 subgroup_46## 54 group7 subgroup_47## 55 group7 subgroup_48## 56 group7 subgroup_49

3.对每个nodes添加第二个数据框信息

name <- unique(c(as.character(edges$from), as.character(edges$to)))name## [1] "origin" "group1" "group2" "group3" "group4" ## [6] "group5" "group6" "group7" "subgroup_1" "subgroup_2" ## [11] "subgroup_3" "subgroup_4" "subgroup_5" "subgroup_6" "subgroup_7" ## [16] "subgroup_8" "subgroup_9" "subgroup_10" "subgroup_11" "subgroup_12"## [21] "subgroup_13" "subgroup_14" "subgroup_15" "subgroup_16" "subgroup_17"## [26] "subgroup_18" "subgroup_19" "subgroup_20" "subgroup_21" "subgroup_22"## [31] "subgroup_23" "subgroup_24" "subgroup_25" "subgroup_26" "subgroup_27"## [36] "subgroup_28" "subgroup_29" "subgroup_30" "subgroup_31" "subgroup_32"## [41] "subgroup_33" "subgroup_34" "subgroup_35" "subgroup_36" "subgroup_37"## [46] "subgroup_38" "subgroup_39" "subgroup_40" "subgroup_41" "subgroup_42"## [51] "subgroup_43" "subgroup_44" "subgroup_45" "subgroup_46" "subgroup_47"## [56] "subgroup_48" "subgroup_49"vertices <- data.frame( name=name, group=c( rep(NA,8) , rep( paste("group", seq(1,7), sep=""), each=7)), cluster=sample(letters[1:4], length(name), replace=T), value=sample(seq(10,30), length(name), replace=T))vertices## name group cluster value## 1 origin <NA> b 20## 2 group1 <NA> d 12## 3 group2 <NA> b 12## 4 group3 <NA> c 25## 5 group4 <NA> d 25## 6 group5 <NA> a 14## 7 group6 <NA> c 30## 8 group7 <NA> a 14## 9 subgroup_1 group1 b 23## 10 subgroup_2 group1 d 20## 11 subgroup_3 group1 b 17## 12 subgroup_4 group1 d 11## 13 subgroup_5 group1 b 27## 14 subgroup_6 group1 c 23## 15 subgroup_7 group1 d 11## 16 subgroup_8 group2 d 11## 17 subgroup_9 group2 a 18## 18 subgroup_10 group2 a 22## 19 subgroup_11 group2 b 28## 20 subgroup_12 group2 b 16## 21 subgroup_13 group2 b 13## 22 subgroup_14 group2 c 22## 23 subgroup_15 group3 c 17## 24 subgroup_16 group3 d 21## 25 subgroup_17 group3 c 28## 26 subgroup_18 group3 a 17## 27 subgroup_19 group3 d 15## 28 subgroup_20 group3 c 24## 29 subgroup_21 group3 b 22## 30 subgroup_22 group4 d 17## 31 subgroup_23 group4 a 21## 32 subgroup_24 group4 a 21## 33 subgroup_25 group4 d 23## 34 subgroup_26 group4 d 11## 35 subgroup_27 group4 c 22## 36 subgroup_28 group4 d 11## 37 subgroup_29 group5 c 26## 38 subgroup_30 group5 b 21## 39 subgroup_31 group5 b 16## 40 subgroup_32 group5 d 28## 41 subgroup_33 group5 b 23## 42 subgroup_34 group5 a 22## 43 subgroup_35 group5 d 24## 44 subgroup_36 group6 b 18## 45 subgroup_37 group6 d 26## 46 subgroup_38 group6 a 15## 47 subgroup_39 group6 a 18## 48 subgroup_40 group6 b 23## 49 subgroup_41 group6 c 12## 50 subgroup_42 group6 d 28## 51 subgroup_43 group7 b 13## 52 subgroup_44 group7 a 16## 53 subgroup_45 group7 c 13## 54 subgroup_46 group7 a 20## 55 subgroup_47 group7 a 21## 56 subgroup_48 group7 b 22## 57 subgroup_49 group7 d 20

4.创建一个图形项目

mygraph <- graph_from_data_frame( edges, vertices=vertices)mygraph## IGRAPH 1e0d235 DN-- 57 56 -- ## attr: name (v/c), group (v/c), cluster (v/c), value (v/n)## edges from 1e0d235 (vertex names):## [1] origin->group1 origin->group2 origin->group3 ## [4] origin->group4 origin->group5 origin->group6 ## [7] origin->group7 group1->subgroup_1 group1->subgroup_2 ## [10] group1->subgroup_3 group1->subgroup_4 group1->subgroup_5 ## [13] group1->subgroup_6 group1->subgroup_7 group2->subgroup_8 ## [16] group2->subgroup_9 group2->subgroup_10 group2->subgroup_11## [19] group2->subgroup_12 group2->subgroup_13 group2->subgroup_14## [22] group3->subgroup_15 group3->subgroup_16 group3->subgroup_17## ... omitted several edges

5.接下来我们开始绘制一个简单的树状图:circular = FALSE时为柱状图

ggraph(mygraph, layout = 'dendrogram', circular = FALSE) geom_edge_diagonal()

6.circular = TRUE时为圆形

ggraph(mygraph, layout = 'dendrogram', circular = TRUE) geom_edge_diagonal()

7.也可以为边缘选择不同的风格:直线型

ggraph(mygraph, layout = 'dendrogram') geom_edge_link()

8.曲线型

ggraph(mygraph, layout = 'dendrogram') geom_edge_diagonal()

9.也可以将标签添加到树上

ggraph(mygraph, layout = 'dendrogram') geom_edge_diagonal() geom_node_text(aes( label=name, filter=leaf) , angle=90 , hjust=1, nudge_y = -0.01) ylim(-.4, NA)

10.节点 标签

ggraph(mygraph, layout = 'dendrogram') geom_edge_diagonal() geom_node_text(aes( label=name, filter=leaf) , angle=90 , hjust=1, nudge_y = -0.04) geom_node_point(aes(filter=leaf) , alpha=0.6) ylim(-.5, NA)

11.也可以在树状图中添加颜色,设置节点大小,更加清楚的显示数据集

ggraph(mygraph, layout = 'dendrogram') geom_edge_diagonal() geom_node_text(aes( label=name, filter=leaf, color=group), angle=90 , hjust=1, nudge_y=-0.1) geom_node_point(aes(filter=leaf, size=value, color=group), alpha=0.6) ylim(-.6, NA) theme(legend.position="none")

12.好了,这就是今天介绍的树图,赶紧来学习学习吧!

搜索更多有关“r语言做出来的图,如何在R语言中定制树状图”的信息 [百度搜索] [SoGou搜索] [头条搜索] [360搜索]
本网站部分内容、图文来自于网络,如有侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2008-2024 蜗牛素材网 All Rights Reserved. 手机版