今天一朋友想学R语言,问我如何学,我建议是针对问题,如何针对问题,比如文献找到一个图,照着画出来就对了。他给我找了个箱线图,这个百度都有代码,但关于数据的排列,转换,提取,我觉得对于小白肯定迷迷糊糊,因为有的画图软件的数据排列方式的思维方式已经固定,可能你不能很好的接受ggplot的数据排列。
1、模板
他发我的模板和他自己做的
2、数据
他发我的数据格式,一看就知道是那个软件,稍微整理后保存csv
3、导入数据整理
变量类型转换、数据列转换、数据提取
library(ggplot2)
library(dplyr)
library(tidyr)
data.xz <- read.csv("xz20210112.csv") ##导入数据
class(data.xz)##查看数据类型data.frame数据框,matric矩阵,list表(这个复杂)
str(data.xz)##查看变量类型factor因子型,int整数(数值型)
data.xz$CO2 <- as.factor(data.xz$CO2.concentration)##创造变量
str(data.xz)##查看变量类型
summary(data.xz)##数据基本概况
data.xz1 <- gather(data = data.xz,key = "IT",value = "value",3:6)
summary(data.xz1)
##提取数据
data.xz1_A <- filter(data.xz1,IT=="IT50A" | IT== "IT90A")
data.xz1_G <- filter(data.xz1,IT=="IT50g" | IT== "IT90g")
4、画图
背景、标签、theme设定、图例、坐标轴lab细节
##画图
ln.a <- ggplot(data = data.xz1_LNA,aes(x=CO2,y=value,fill=IT))+
stat_boxplot(geom = "errorbar",position = position_dodge())+
geom_boxplot()+
geom_text(data = data.xz1_LNA_max,
aes(label = c("c","c","a","a","bc","bc","a","a","ab","b","a","a"),
x=data.xz1_LNA_max$CO2,
y=data.xz1_LNA_max$value.max+20),
position = position_dodge(0.7),family="RMN",cex=4)+
geom_text(aes(label="LN",x=6,y=500,family="RMN"))+
ylab(expression(paste("S"," ("," ",ha^-1,")")))+xlab(expression(paste("O"[2]," ","Concentration")))+
theme_bw()+
guides(fill=guide_legend(title=NULL))##去除图例标题
ln.a