标签:
在散点图中添加信息、图例以及回归线。
模拟数据
#模拟数据 dat <- data.frame(X = runif(100,-2,2),T1 = gl(n=4,k=25,labels = c("Small","Medium","Large","Big")),Site = rep(c("Site1","Site2"),time = 50)) mm <- model.matrix(~Site+X*T1,dat) betas <- runif(9,-2,2) dat$Y <- rnorm(100,mm%*%betas,1) summary(dat)
添加颜色
给plot的col
参数传递一个颜色向量
#选择需要使用的颜色 library(RColorBrewer) #RColorBrewer中的所有调色板 display.brewer.all() #选取Set1调色板中的四种颜色 cols <- brewer.pal(n=4,name="Set1") #cols表示的是四种不同颜色的名称 #创建一个跟T1变量的因子水平相对应的颜色向量 cols_t1 <- cols[dat$T1] plot(Y~X,dat,col=cols_t1,pch=16)
更改图形符号
创建图形符号向量,用来标记两种不同的Site
pch_site <- c(16,18)[factor(dat$Site)] #pch参数用来控制图形符号 plot(Y~X,dat,col=cols_t1,pch=pch_site)
添加图例
legend
函数的第一个参数指定图例显示在图形中位置,接着是图例文本。通过设置xpd=TRUE
可以在图形外增加图例。并指定x,y坐标轴
plot(Y~X,dat,col=cols_t1,pch=pch_site) legend("topright",legend = paste(rep(c("Small","Medium","Large","Big"),times=2),rep(c("Site 1","Site 2"),each=4),sep = ", "),col = rep(cols,times=2),pch = rep(c(16,18),each=4),bty = "n",ncol = 2,cex = 0.7,pt.cex = 0.7,xpd = TRUE)
添加回归线
new_X<-expand.grid(X=seq(-2,2,length=10),T1=c("Small","Medium","Large","Big"),Site=c("Site1","Site2")) m<-lm(Y~Site+X*T1,dat) pred<-predict(m,new_X) xs<-seq(-2,2,length=10) plot(Y~X,dat,col=cols_t1,pch=pch_site) lines(xs,pred[1:10],col=cols[1],lty=1,lwd=3) ... lines(xs,pred[31:40],col=cols[4],lty=1,lwd=3) lines(xs,pred[41:50],col=cols[1],lty=2,lwd=3) ... lines(xs,pred[71:80],col=cols[4],lty=2,lwd=3) legend(x=-1,y=13,legend=paste(rep(c("Small","Medium","Large","Big"),times=2),rep(c("Site 1","Site 2"),each=4),sep=", "),col=rep(cols,times=2),pch=rep(c(16,18),each=4),lwd=1,lty=rep(c(1,2),each=4),bty="n",ncol=2,cex=0.7,pt.cex=0.7,xpd=TRUE)
坐标轴标题和标签
新建绘图数据并得到默认设置的图形:
#新建数据 x<-1:100 y<-runif(100,-2,2) #得到的默认设置的图形 plot(x,y) #修改坐标轴标题 plot(x,y,xlab="Index",ylab="Uniform draws")
图形设置通过par
函数来实现
#修改轴标签和轴标题的尺寸 op<-par(no.readonly=TRUE) #保存默认设置 par(cex.lab=1.5,cex.axis=1.3) plot(x,y,xlab="Index",ylab="Uniform draws") #为了得到大尺寸的轴标题和标签,需要预留更大的空间 par(mar=c(6,6,3,3),cex.axis=1.5,cex.lab=2) plot(x,y,xlab="Index",ylab="Uniform draws")
通过axis
函数可以对坐标轴做更多设置。他可以用来控制在哪些坐标值处绘制刻度线,刻度线下放置轴标签,轴线的类型和宽度,刻度线宽度,轴线和刻度线的颜色:
#利用axis函数对坐标轴作进一步的设置 par(op) #重置为默认设置 plot(x,y,xaxt="n") #不绘制x轴标签 axis(side=1,at=c(5,50,100)) #在x轴的5,50,150处绘制刻度线 #在刻度线处指定标签 plot(x,y,yaxt="n") axis(side=2,at=c(-2,0,2),labels=c("Small","Medium","Big")) #设置坐标轴线和标签 plot(x,y) axis(side=3,at=c(5,25,75),lwd=4,lwd.ticks=2,col.ticks="red") #移除图形四周的边框,只显示坐标轴线 plot(x,y,bty="n",xaxt="n",yaxt="n") axis(side=1,at=seq(0,100,20),lwd=3) axis(side=2,at=seq(-2,2,2),lwd=3)
R图形有四个面,底部是起始位置,并按顺时针方向计数(即side=3是在顶部)
刻度线
精细化的控制刻度线,它可以通过par
函数或axis
函数来实现。
标签:
原文地址:http://www.cnblogs.com/hanqing/p/5479785.html