r语言做出来的图,如何在R语言中定制树状图
背景介绍
今天我们来介绍一下如何使用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.好了,这就是今天介绍的树图,赶紧来学习学习吧!
- 01-11方便饭盒的使用方法,带饭一族,必备装备便当饭盒的种类
- 12-08上海铁路局年底调整列车运行图:上海铁路局官方公布春运增开列车车次表
- 05-102035年河北保定地铁规划 北京设计,保定制造
- 11-08九州缥缈录苏瞬卿下线了吗?九州缥缈录苏瞬卿下线
- 03-28南岳大庙门票怎么可以优惠?南岳大庙游玩攻略门票价格
- 01-06广东铝合金系统门窗生产:广东力丝特系统铝合金门窗的性能
- 02-15鹿晗发行新专辑:鹿晗新歌兜风上线驰骋大道沐浴月色
- 03-10陈小春和应采儿演唱会互动片段:应采儿发私房照为其打call
- 03-08男朋友毕业找不到工作,毕业后没找到工作居然被男友骂废物
- 12-20和田玉的两种分类方法:最常见的几种和田玉
- 01-23七年就这样结束了是喜是忧:人过了,七七就结束了这世
- 01-05情人节男生适合和另一半聊什么?情人节礼单撩男人就是如此简单
- 01-26一本值得读的人性书:书单这12本书揭露人性的真相
- 12-02如何在两个小时画完一幅优秀素描?让人望尘莫及的线性素描
- 03-02工厂临时工能干一个月就辞职吗?年轻人千万不要在工厂上
- 02-09堪比开挂某主播单场64杀:堪比开挂某主播单场64杀
热门
推荐
- 1母爱作文600字一件事-母爱常在作文600字372
- 2电子商务学习方法以及心得体会479
- 3办公室主任年度述职报告范文222
- 4代理记账服务方案466
- 5沟通的障碍有哪些_如何克服170
- 6茶文化的知识419
- 7小学二年级语文试卷分析范文100
- 8两会热词盘点218