LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
R语言ggplot2包,ggplot绘图-折线图

运行ggplot()和geom_line()函数,并分别制定一个变量映射给x和y

ggplot(BOD,aes(x=Time,y=demand))+geom_line()

当x对应因子型变量时,必须使用命令aex(group=1)以确保ggplot知道这些点属于一组

BOD1<-factor(BOD1$Time)

ggplot(BOD1,aes(x=Time,y=demand,group=1))+geom_line()

可以运行ylim()设定y轴范围,或者运行expand_limit()扩展y轴的范围。

ggplot(BOD,aes(x=Time,y=demand))+geom_line()+ylim(0,max(BOD$demand))

ggplot(BOD,aes(x=Time,y=demand))+geom_line+expand_limit(y=0)

向折线添加数据标记

在代码中加上geom_point()

ggplot(BOD,aes(x=Time,y=demand))+geom_line()+geom_point()


绘制多重折线图

方法:

在分别设定一个映射给x和y的基础上,再将另一个(离散型)变量映射给颜色(col),或者线性(linetype)即可

library(plyr)#用于加载ddply函数,构造新的数据集#

tg<-ddply(ToothGrowth,c("supp","dose"),summarise,length=mean(len))

#supp映射给颜色#

ggplot(tg,aes(x=dose,y=length,col=supp))+geom_line()

#supp映射给线型#

ggplot(tg,aes(x=dose,y=length,linetype=supp))+geom_line()


tg

1   OJ  0.5  13.23

2   OJ  1.0  22.70

3   OJ  2.0  26.06

4   VC  0.5   7.98

5   VC  1.0  16.77

6   VC  2.0  26.14

如果x变量是因子,你必须同时告诉ggplot()用来分组的变量。

折线图的x轴既可以对应连续型变量也可以对应离散型变量。

有时候,映射给x的变量虽然被储存在数值型变量,但被看作分类变量来处理。本例中,dose变量有三个取值:0.5,1,2.如果你想将其按分类变量而不是连续型变量来处理,那么运行factor()函数将其转化为因子。

ggplot(tg,aes(x=factor(dose),y=length,col=supp,group=supp))+geom_line()


注意,不可缺少group=supp语句,否则ggplot不知如何将数据组合在一起,绘制折线图,从而会报错。

ggplot(tg,aes(x=factor(dose),y=length,col=supp))+geom_line()

geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?

当分组不正确时会遇见的另一种问题是,折线图会变成锯齿状

ggplot(tg,aes(x=dose,y=length))+geom_line()


导致这种情况的原因在于x在每个位置都对应多个顶,ggplot()误以为这些点属于同一组数据而将其用一根折线相连,结果形成了锯齿状折线图。如果将任意离散型变量映射给col或者linetype,ggplot()会以其分组变量对数据进行分组,如果你想借助其他变量对数据进行分组则需要使用group。

折线图上,可以更改数据标记的属性。shape和fill等

ggplot(tg,aes(x=dose,y=length,shape=supp))+geom_line()+geom_point(size=4)


ggplot(tg,aes(x=dose,y=length,fill=supp))+geom_line()+geom_point(size=4,shape=21)

对于数据点折线堆积,将其分开的方法

ggplot(tg,aes(x=dose,y=length,shape=supp))+geom_line(position = position_dodge(0.2))+geom_point(position = position_dodge(0.2),size=4)

使数据点相互错开,避免重叠。

修改线条样式:

通过设置线型(linetype),线宽(size)和颜色(colour)参数可以分别修改折线的线性,线宽和颜色。

ggplot(BOD,aes(x=Time,y=demand))+geom_line(linetype="dashed",size=1,col="blue")

修改数据标记样式

在函数aes外设定函数geom_point()的大小(size)颜色(col)填充色(fill)即可

ggplot(BOD,aes(x=Time,y=demand))+geom_line()+geom_point(size=4,shape=22,col="black",fill="pink")






推荐文章
评论(0)
分享到
转载我的主页