R语言绘图多图叠加和图形分页

上传人:人*** 文档编号:492546836 上传时间:2022-08-12 格式:DOCX 页数:11 大小:89.54KB
返回 下载 相关 举报
R语言绘图多图叠加和图形分页_第1页
第1页 / 共11页
R语言绘图多图叠加和图形分页_第2页
第2页 / 共11页
R语言绘图多图叠加和图形分页_第3页
第3页 / 共11页
R语言绘图多图叠加和图形分页_第4页
第4页 / 共11页
R语言绘图多图叠加和图形分页_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《R语言绘图多图叠加和图形分页》由会员分享,可在线阅读,更多相关《R语言绘图多图叠加和图形分页(11页珍藏版)》请在金锄头文库上搜索。

1、细心整理R绘图课程:多图叠加及图形分页gaom在我们用R画图的时候时时遇到一种问题,就是我们简简洁单一个对象的图无法到达我们想要的结果。可能我们是一个对象但有多种展示,须要把多个图放在一起。也可能我们要画的是多个对象,但每个对象的图其实都是并行的。前面一种状况我理解为是多图叠加,即须要多张不同的图拼凑到一张图中。后面的状况我理解为是图形分页,即把类似的图形有序的排列展示给大家看。今日我们探讨的主题就是如何去解决上述的两种状况。首先,我们针对第一种状况。其实第一种状况我们还是要划分一下。多图叠加,其中的叠是指我们的绘图中两张或多张不同的图整合到一种图中,共用一个坐标轴。比方一张柱状图,一张曲线图

2、合并到一张图中。而其中的加那么是指我们想合并的图之间无法共用坐标轴,我们只能在一张图中划分不同的区域加须要的多张图放置进去。光说不练假把式,今日我们就找几个实例展示一下,让大家看下我们假如处理这种常见的问题。library(ggplot2)#这次主要是用ggplot来处理data-read.table(file = C:/Users/gaom/Desktop/R语言绘图:多图叠加和图形分页/test_data2.txt,header=F,stringsAsFactors=F,sep = t)#因为文件中有数字也有字符,所以建议加上stringsAsFactors=F。head(data)# V

3、1 V2 V3 V4# 1 1 0.15415052 0.7645350 A# 2 2 0.09278940 0.7763482 A# 3 3 0.01666104 0.8422627 A# 4 4 0.01519319 0.7630589 A# 5 5 0.16605095 0.8263706 A# 6 6 0.13892152 0.7597543 Adim(data)# 1 48 4第一列是染色体名,其次列和第三列分别是两种计算结果,具体意义短暂不予理睬。第四列是染色体的区域,100000表示1到100000,200000表示100001到200000。我们大致知道数据构造即可。下面我们起

4、先画图p1-ggplot(data)+geom_bar(aes(x=data$V1,y=data$V3,fill = data$V4,group = data$V4),position = dodge,stat = identity,colour = black)+scale_x_continuous(breaks = 1:12)#加上position=dodge后会每条染色体分成四个柱子,加上colour = black,那么每个柱子的边框为黑色。p1 上面已经有对应的柱状图了,下面再依据第一列和第三列画点线图。p2-ggplot(data)+geom_line(aes(x=data$V1,

5、y=data$V2,colour = data$V4)+scale_x_continuous(breaks = 1:12)#这里可以留意跟柱状图不一样了,用的是colour,不是fill。p2分开的两张图我们都做好了,下面就是叠加了。首先我们看到这里的数据其实都是data,换句话说就是他们其实可以共用坐标轴的。所以这种状况在ggplot当中叠起来很简洁。data,5=whitep3-ggplot(data)+geom_bar(aes(x=data$V1,y=data$V3,group = data$V4),fill = data$V5,position = dodge,stat = ident

6、ity,colour = black)+geom_line(aes(x=data$V1,y=data$V2,colour = data$V4)+scale_x_continuous(breaks = 1:12)#为了能看到线图,所以这里把填充颜色改成了白色,这里大家留意一下fill的位置,跟之前的fill运用有些区分p3这里说完了叠,再说说加。下面我们就简洁的把上面两张图加到一张图中。library(gridExtra)grid.arrange(p1,p2,ncol = 2,widths=c(1,1)#widths表示横向两图的比例grid.arrange(p1,p2,nrow = 2,hei

7、ghts = c(1,2)#heights表示两图纵向的比例grid.arrange(p1,p2,p1,p2,ncol =2,nrow =2)#ncol和nrow表示图形摆放方式grid.arrange(p1,p2,p1,p2,ncol =2,layout_matrix = cbind(c(1,1,1), c(2,3,4)#layout_matrix中的1,2,3,4分别对应前面四个对象 除了上述状况,坚信大家还会遇到另外一种,比方上述四个图拼在一起。而我们只有三个图,可能右上角或左上角是空白的。这个怎么办呢?kong- ggplot()+geom_blank(aes(1,1)+ theme(

8、plot.background = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.border = element_blank(), panel.background = element_blank(),axis.title.x = element_blank(), axis.title.y = element_blank(),axis.text.x = element_blank(), axis.text.y = element_blank(),axi

9、s.ticks = element_blank(), axis.line = element_blank()#这里其实就是建立了一个完全空白的图片grid.arrange(p2,kong,p1,p2,ncol =2 ,nrow =2,widths = c(2,1),heights = c(1,2)上述了这些就是一般常见的图层叠加了。当然,假如大家还想发散的话,可以再参考一些ggExtra这个包,你会发觉更多乐趣。好了,除了刚刚的叠加,下面我们再说说分页。这方面在ggplot中就显得很简洁了。p4-ggplot(data)+geom_bar(aes(x=data$V1,y=data$V3,fil

10、l = data$V4,group = data$V4),position = dodge,stat = identity,colour = black)+scale_x_continuous(breaks = 1:12)+facet_grid(V4)#这是依据分组来分页的p4p5-ggplot(data)+geom_bar(aes(x=data$V1,y=data$V3,fill = data$V4,group = data$V4),position = dodge,stat = identity,colour = black)+scale_x_continuous(breaks = 1:1

11、2)+facet_wrap(V1,ncol = 3)#这个是依据染色体的,同时也能通过ncol和nrow来调控布局p5facet_grid相对facet_wrap而言可以应用多个标准进展分页。但从布局角度个人觉得facet_wrap更好。p6-ggplot(data)+geom_bar(aes(x=data$V1,y=data$V3,fill = data$V4,group = data$V4),position = dodge,stat = identity,colour = black)+scale_x_continuous(breaks = 1:12)+facet_grid(V1V4)#这是依据分组来分页的p6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号