R语言ggplot2绘图详细方法教程(含代码和案例)

最近在学ggplot2,小有心得,愣是没忍住想跟大家分享下。

要学习ggplot2,咱的思维得要大变,因为ggplot2无论是数据的输入格式还是作图的命令风格跟常规的R作图函数都有较大差别。

1、首先ggplot2的输入格式就跟咱们常见的数据有点不一样

假设我们要做个柱状图,常规R用的barplot输入格式是这个样子的一个二维矩阵,如我们要查看E1样品中Akkermansia这个菌的丰度,需要在第一行找到E1,然后在第一列找到Akkermansia,两者的交点即是我们所要找的丰度。

但是在ggplot2中,这个格式要变成这个样子

聪明的你肯定能看出来是发生了什么变化(怎么变成这样子的,其实就只需一条命令)。

同样我们要查看E1样品中Akkermansia这个菌的丰度,直接按行搜索即可(黄底)。你可以理解为,前面两列(Species 和Sample)分别是两个“坐标”,最后一列(Abundance)是其对应的值。

2 、其次是命令风格也不同,话不多说,直接看命令。

首先从百度云盘下载我们提供的示例数据(下载地址见文末),将它放到你的R的当前工作目录,可通过在命令行输入getwd()查看你的工作目录,也可以通过下面的命令修改工作目录。

setwd(“E:/R-work/ggplot2”)  ###修改R的工作目录,因为Spe_matrix.txt文件在此目录下

spe<-read.table(“Spe_matrix.txt”,sep=”t”,header=T,row.names=1,check.names=FALSE)

spe<-as.matrix(spe)

spe ###查看spe

###常规的barplot作图命令

par(mar=c(5,4,4,10)) 

barplot(spe,width=0.7,beside = TRUE,col=c(“#0000ee”,”#9933cc”,”#009999″,”#ff0000″,”#ff9933″),legend=rownames(spe),args.legend = list(x=”right”,bty=”n”,inset=-0.4,cex=1))

 

####ggplot2作图命令

library(ggplot2)  

library(reshape2)  

data<-melt(spe) ####对数据格式进行转化

colnames(data)<-c(“Species”,”Sample”,”Abundance”) ###修改列名

data  ####查看转化后的数据

ggplot(data,aes(x=Sample,y=Abundance,fill=Species))+geom_bar(stat=”identity”,position=”dodge”)+ggtitle(“Example”)+theme() # ####ggplot()中包含的是作图的数据以及数据的映射,所谓映射简单理解就是,x、y轴分别对应哪一列数据,哪一列用来区分填充的颜色等;geom_bar()则指明作图形式,你是作要柱图还是点图;通过theme()可修改图中字体、坐标轴等元素的显示形式,此处采用默认形式。

为了作出更漂亮以及符合文章发表的图,我们需要对theme()作更精细的设置。我们对这幅图稍作分解,看theme()都可以调整哪些元素。

方框中对应的是显示的文本,紫色文字表示theme()可调整的部分元素的名称。如我们要将x和y轴以及标题字体变大,同时保证标题居中,然后给绘图区加上lightblue的背景,给legend区加上灰色背景。

ggplot(data,aes(x=Sample,y=Abundance,fill=Species))+geom_bar(stat=”identity”,position=”dodge”)+ggtitle(“Example”)+theme(axis.title.x=element_text(size=15),axis.title.y=element_text(size=15),plot.title=element_text(size=20,hjust=0.5),plot.background=element_rect(fill=”lightblue”),legend.background=element_rect(fill=”lightgrey”))

当然我们还可以修改柱子的颜色,去掉图中的灰色方格等等,这些我们会在后面介绍……

下载地址

百度网盘:链接:https://pan.baidu.com/s/17Xmnl7z0TnKrwMVVSo86Ng 提取码:uhm5

蓝奏云:https://www.lanzous.com/b00z9bnqf 密码:5r76

生物信息学

overlap数据和基因名导入Excel如何“不变形”?

2019-12-20 13:46:31

生物信息学

Gene ID的转换工具(DAVID与Absolute Gene ID Conversion Tools)

2019-12-30 20:21:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索