如何使用R语言绘制散点图结合边际分布图
如何使用R语言绘制散点图结合边际分布图
这篇文章主要为大家展示了“如何使用R语言绘制散点图结合边际分布图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用R语言绘制散点图结合边际分布图”这篇文章吧。
主要使用ggExtra
结合ggplot2
两个R包进行绘制。(胜在简洁方便)使用cowplot
与ggpubr
进行绘制。(胜在灵活且美观)
下面的绘图我们均以iris数据集为例。
1. 使用ggExtra结合ggplot2
1)传统散点图
#librarylibrary(ggplot2)library(ggExtra)#classicplotp<-ggplot(iris)+geom_point(aes(x=Sepal.Length,y=Sepal.Width,color=Species),alpha=0.6,shape=16)+#alpha调整点的透明度;shape调整点的形状theme_bw()+theme(legend.position="bottom")+#图例置于底部labs(x="SepalLength",y="SepalWidth")#添加x,y轴的名称p
下面我们一行代码添加边际分布(分别以密度曲线与直方图的形式来展现):
2)密度函数
#marginalplot:densityggMarginal(p,type="density",groupColour=TRUE,groupFill=TRUE)
3)直方图
#marginalplot:histogramggMarginal(p,type="histogram",groupColour=TRUE,groupFill=TRUE)
4)箱线图(宽窄的显示会有些问题)
#marginalplot:boxplotggMarginal(p,type="boxplot",groupColour=TRUE,groupFill=TRUE)
5)小提琴图(会有重叠,不建议使用)
#marginalplot:violinggMarginal(p,type="violin",groupColour=TRUE,groupFill=TRUE)
6)密度函数与直方图同时展现
#marginalplot:densigramggMarginal(p,type="densigram",groupColour=TRUE,groupFill=TRUE)
2. 使用cowplot与ggpubr
1)重绘另一种散点图
#Scatterplotcoloredbygroups("Species")sp<-ggscatter(iris,x="Sepal.Length",y="Sepal.Width",color="Species",palette="jco",size=3,alpha=0.6)+border()+theme(legend.position="bottom")sp
2)有缝拼接
① 密度函数
library(cowplot)#Marginaldensityplotofx(toppanel)andy(rightpanel)xplot<-ggdensity(iris,"Sepal.Length",fill="Species",palette="jco")yplot<-ggdensity(iris,"Sepal.Width",fill="Species",palette="jco")+rotate()#Cleaningtheplotssp<-sp+rremove("legend")yplot<-yplot+clean_theme()+rremove("legend")xplot<-xplot+clean_theme()+rremove("legend")#Arrangingtheplotusingcowplotplot_grid(xplot,NULL,sp,yplot,ncol=2,align="hv",rel_widths=c(2,1),rel_heights=c(1,2))
② 未被压缩的箱线图
#Marginalboxplotofx(toppanel)andy(rightpanel)xplot<-ggboxplot(iris,x="Species",y="Sepal.Length",color="Species",fill="Species",palette="jco",alpha=0.5,ggtheme=theme_bw())+rotate()yplot<-ggboxplot(iris,x="Species",y="Sepal.Width",color="Species",fill="Species",palette="jco",alpha=0.5,ggtheme=theme_bw())#Cleaningtheplotssp<-sp+rremove("legend")yplot<-yplot+clean_theme()+rremove("legend")xplot<-xplot+clean_theme()+rremove("legend")#Arrangingtheplotusingcowplotplot_grid(xplot,NULL,sp,yplot,ncol=2,align="hv",rel_widths=c(2,1),rel_heights=c(1,2))
3)无缝拼接
#Mainplotpmain<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,color=Species))+geom_point()+color_palette("jco")#Marginaldensitiesalongxaxisxdens<-axis_canvas(pmain,axis="x")+geom_density(data=iris,aes(x=Sepal.Length,fill=Species),alpha=0.7,size=0.2)+fill_palette("jco")#Marginaldensitiesalongyaxis#Needtosetcoord_flip=TRUE,ifyouplantousecoord_flip()ydens<-axis_canvas(pmain,axis="y",coord_flip=TRUE)+geom_density(data=iris,aes(x=Sepal.Width,fill=Species),alpha=0.7,size=0.2)+coord_flip()+fill_palette("jco")p1<-insert_xaxis_grob(pmain,xdens,grid::unit(.2,"null"),position="top")p2<-insert_yaxis_grob(p1,ydens,grid::unit(.2,"null"),position="right")ggdraw(p2)
以上是“如何使用R语言绘制散点图结合边际分布图”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
R语言标签平滑是什么
-
R语言怎么批量读取某路径下文件内容
R语言怎么批量读取某路径下文件内容今天小编给大家分享一下R语言怎么...
-
R语言怎么安装芯片原始数据标准化的包
R语言怎么安装芯片原始数据标准化的包这篇“R语言怎么安装芯片原始数...
-
TPM,FPKM(R语言怎么计算转录组中Count)
R语言怎么计算转录组中Count,TPM,FPKM本文小编为大家...
-
r语言如何绘制蛋白质组和转录组相关性图
r语言如何绘制蛋白质组和转录组相关性图这篇“r语言如何绘制蛋白质组...
-
怎么用R语言的limma方法进行芯片数据差异表达分析
怎么用R语言的limma方法进行芯片数据差异表达分析这篇文章主要介...
-
r语言中如何使用reshape2包将宽型数据转换成长型数据
r语言中如何使用reshape2包将宽型数据转换成长型数据这篇文章...
-
怎么用R语言的rgb函数获取颜色
怎么用R语言的rgb函数获取颜色今天小编给大家分享一下怎么用R语言...
-
怎么使用R语言筛选基因
-
在R语言中如何利用split划分数据
在R语言中如何利用split划分数据这篇文章给大家分享的是有关在R...