#若没有下载过readxl包,则有此步,否则直接跳过
install.packages(“readxl”)
#使用包
library(readxl)
#读取excel文件
dataset<-read_excel(path=“./records_data.xlsx”,sheet=”Fe”,range=”A2:G18”)
#解析
path参数表明文件的路径,有两种方式
1、绝对路径 即直接写成path=”D:/R/xxx.xlsx”
2、相对路径 首先通过函数getwd()获得当前工作空间路径,例如getwd()显示的结果是
D:/R/Rstudio 而数据储存在D:/R/records_data.xlsx,则相对路径可以写为 ./records_data.xlsx ./的意思是当前目录(即D:/R/) 扩展:../代表的是父目录
sheet参数表明取哪一张sheet,默认是第一页
range参数表明取的数据范围
#查看取得数据的格式
str(dataset)
#调整数据结构
因为我们的day应该作为一种分类变量,而不是数值型
dataset$day<-factor(dataset$day)
#解析
factor函数就是使某一变量类型变成分类变量
#降低数据的维度!
因为做点图或是线图都是二维的 即x-y型,而目前的数据格式为:
day fe1 fe2 avg sd
0 5 6 5.5 1
我们需要的数据格式应是下面这种形式的:
day variable value
0 fe1 5
0 fe2 6
0 avg 5.5
0 sd 1
这样就形成了一一对应的形式x轴对应day变量,y轴对应value变量,而variable相当于名字
#下载并使用“数据整形相关的包”
install.packages(“reshape2”)
library(reshape2)
#使用包中函数进行数据的整形
dat.m<-melt(data=dataset,id.vars=”day”)
#解析
#第一个参数的意思是源数据集,此处即我们从excel中读取的数据
#id.vars参数的意思是,我们标志变量的名字是哪一个,因为只有给定了标志变量,
#才能以该变量为基准进行变形
#查看整形后的数据
dat.m
#剔除不需要的数据
#因为这个例子只做Fe1,Fe2,avg三个相关的线性图
#因此,只需要variable为Fe1或者Fe2或者avg的
dat.m2<-dat.m[dat.m$variable %in% c(“Fe1,”Fe2”,”avg”)],)
#解析
这行的直观解释就是,提取variable的名称在向量(“Fe1”,”Fe2”,”avg”)中的所有行
dat.m[行,列]
这儿需要所有的列,因此逗号后什么都不写,逗号前为提取的行的条件
%in% 的意思是 “在集合内”
#做图形对象
p<-ggplot(data=dat.m2,aes(x=day,y=value,group=variable,colour=variable))
#解析
aes里面group参数的意义:按照variable进行分类,放在这个例子中,就是
variable=Fe1的value为一组,variable=Fe2的value为一组
colour参数的意义:将作为分组的那些变量,根据一定的规则映射到了颜色上,即:
能够使不同的分组自动分配不同的颜色
#给图形对象加上图层
line<-p+geom_line()
#查看当前图形
line
#改变图例的标题
line<-line+scale_color_discrete(name=”不同种类的Fe离子”)
#查看当前图形
line
#改变x,y轴label
line<-line+xlab(“天数”)+ylab(“值”)
#查看当前图形
line
R ggplot2线性图
最新推荐文章于 2023-11-17 10:01:29 发布