今天继续 跟着Nature Communications学画图 系列 最后一篇。学习R语言ggplot2包画箱线图。对应的是论文中的补充材料图4。
image.png
对应的 Nature Communications 的论文是 Fecal pollution can explain antibiotic resistance gene abundances in anthropogenically impacted environments
这篇论文数据分析和可视化的部分用到的数据和代码全部放到了github上 https://github.com/karkman/crassphage_project
非常好的R语言学习素材。
MG_RAST <- read.table("data/MG-RAST.txt")
is.na()
函数。然后挑选出空值所在的行的数据MG_RAST_NocrAss <- MG_RAST[is.na(MG_RAST$crAss),]
下面这条命令稍微有点长,我们把它分开看。 首先是subset()
函数,基本用法是可以向量,矩阵,数据框数据按照一定的条件进行过滤,小例子
df<-data.frame(A=1:10,B=5:14)
subset(df,A<5)
统计MG_RAST_NocrAss数据集feature这一列各个变量出现的次数,使用table()
函数,table()
函数最基本的用法
> table(c("A","B","C","B","C","D"))
A B C D
1 2 2 1
接下来是names()
函数的用法
names(table(c("A","B","C","B","C","D")))
[1] "A" "B" "C" "D"
%in%的用法
> a<-c("A","B")
> b<-c("A","C","D")
> a%in%b
[1] TRUE FALSE
告诉你a中的元素是否在b中
所以今天的问题就来了
MG_RAST_NocrAss <- subset(MG_RAST_NocrAss, feature %in%
names(table(MG_RAST_NocrAss$feature)[table(MG_RAST_NocrAss$feature)>2]))
这行代码起到了什么作用,欢迎大家留言讨论。
ggplot(MG_RAST_NocrAss, aes(x=feature, y=rel_res)) +
geom_boxplot()
image.png
因为x轴的坐标轴标签有重叠,现在是水平方向,将其改个方向
ggplot(MG_RAST_NocrAss, aes(x=feature, y=rel_res)) +
geom_boxplot() +
theme(axis.text.x=element_text(angle=45, hjust=1, size=10))
image.png
ggplot(MG_RAST_NocrAss, aes(x=feature, y=rel_res)) +
geom_boxplot() +
theme(axis.text.x=element_text(angle=45, hjust=1, size=10)) +
labs(y = "Normalized ARG abundance", x="")
image.png
ggplot(MG_RAST_NocrAss, aes(x=feature, y=rel_res)) +
geom_boxplot() +
theme_minimal()+
theme(axis.text.x=element_text(angle=45, hjust=1, size=10)) +
labs(y = "Normalized ARG abundance", x="")
image.png
ggplot(MG_RAST_NocrAss, aes(x=feature, y=log10(rel_res))) +
geom_boxplot(aes(fill=feature)) +
theme_minimal()+
theme(axis.text.x=element_text(angle=45, hjust=1, size=10),
legend.position = "none") +
labs(y = "Normalized ARG abundance", x="")
image.png