(一)使用图形
> attach(mtcars)
> plot(wt,mpg)
> abline(lm(mpg~wt))
> title("Regression of MPG On Weight")
> detach(mtcars)
dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)
plot(dose,drugA,type="b") ;;b表示同时绘制点和线
(二)图形参数
opar <- par(no.readonly=TRUE) ;;复制了当前图形参数设置
par(lty=2,pch=17) ;;将默认线条类型改为虚线(lty=2)默认点符号改成实心三角(pch=17)
plot(dose,drugA,type="b") ;;绘图
par(opar) ;;还原了原始设置
以上命令等价于 :
plot(dose,drugA,type="b",lty=2,pch=17)
plot(dose,drugA,type="b",lty=3,lwd=3,pch=15,cex=2)
(三) 颜色
颜色的指定可以通过颜色下标、颜色名称
十六进制的颜色,RGB值或HSV来指定颜色
col=1
col="white"
col = "#FFFFFF"
col = rgb(1,1,1)
col = hsv(0,1,1)
都是表示白色的方式
colors()可以返回所有颜色的名称
(四)文本属性
(五)图形的边界和尺寸
par(pin <- c(4,3),mai=c(1,.5,1,.2))
;;生成一副4英寸宽,3英寸高,上下边界为1,作边界为0.4,右边界为0.2的图形
dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)
opar <- par(no.readonly=TRUE)
par(pin=c(2,3)) ;;设定两英寸宽,3英寸长
par(lwd=2,cex=1.5) ;;线宽默认值的两倍,符号为默认的1.5倍
par(cex.axis=.75,font.axis=3)
plot(dose,drugA,type="b",pch=19,lty=2,col="red") ;;19号点,2号线,颜色为红色
plot(dose,drugA,type="b",pch=23,lty=6,col="blue",bg="green");;图形背景色为绿色
par(opar)
(六) 添加文本、自定义坐标轴和图例
plot(dose,drugA,type="b",
col="red",lty=2,pch=2,lwd=2,
main="Clinical Trials for Drug A", 标题
sub ="This is hypothetical data", 副标题
xlab = "Dosage",ylab ="Drug Response",
xlim=c(0, 60),ylim=c(0, 70))
也可以使用title()函数为图形添加标题和坐标轴标签:
title(main="My Title",col.main="red",
sub="My Subtitle",col.sub="blue",
xlab="My X label",ylab="My Y label",
col.lab="green",cex.lab=0.75)
对于坐标轴,可以使用axis()来创建自定义的坐标轴,而非使用R的默认坐标轴:
axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,……)
x <- c(1:10)
y <- x
z <- 10/x
opar <- par(no.readonly=TRUE)
par(mar=c(5,4,4,8)+0.1)
plot(x,y,type="b",
pch=21,col="red",
yaxt="n",lty=3,ann=FALSE) ;;yaxt禁用Y轴的框架、ann禁用默认的标题和坐标轴标签。如果加了axe=FALSE将禁用所有坐标轴,包括坐标轴框架线
lines (x,z,type="b",pch=22,col="blue",lty=2)
axis(2,at=x,labels=x,col.axis="red",las=2)
axis(4,at=z,labels=round(z,digits = 2),col.axis="blue",las=2,cex.axis=.7,tck=-.01)
mtext("y=1/x",side=4,line=3,cex.lab=1,las=2,col="blue") ;;在图形边界添加文本
title("An Example Of Creative Axes ",xlab = "X Values",ylab = "Y=x")
par(opar)
(七) 参考线
abline(h=yvalues,v=xvalues)
abline(h=c(1,5,7))
abline(v=sep(1,10,2),lty=2,col="blue")
(八)图例
legend(location,tilte,legend,……)
更多的选项可以通过help(legend) 来获得帮助
dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)
opar <- par(no.readonly=TRUE)
par(lwd=2,cex=1.5,font.lab=2)
plot(dose,drugA,type="b",
pch=15,lty=1,col="red",ylim=c(0,60),
main="Drug A vs. Drug B",
xlab="Drug Dosage",ylab="Drug Response")
lines(dose,drugB,type="b",pch=17,lty=2,col="blue")
abline(h=c(30),lwd=1.5,lty=2,col="gray")
library(Hmisc)
minor.tick(nx=3,ny=3,tick.ratio = 0.5)
;;nx和ny分别是X和Y轴主刻度间分为几个区间,tick. ratio是相对于主刻度的大小
legend("topleft",inset=0.05,title="Drug Type",c("A","B"),lty=c(1,2),pch=c(15,17),col=c("red","blue"))
用相同命令在R上画的就很正常,在RStudio就比例失调了……
(九) 文本标注
text(location,"text to pace",pos,……)
;;在绘图区域内加文本
text("text to place",side,line=n,……)
;;在四个边界之一添加文本
attach(mtcars)
plot(wt,mpg,
main="Mileage vs. Car Weight",
xlab="Weight",ylab="Milage",
pch=18,col="blue")
text(wt,mpg,
rownames(mtcars),
cex=0.6,pos=4,col="red")
(十)图形的组合
在par()函数内,可以使用mfrow=c(nrows,ncols)按行填充行数为nrows,列数为ncols的图形矩阵
可以用mfcol=c(grows,ncols)按列填充矩阵
attach(mtcars)
opar <- par(no.readonly = TRUE)
par(mfrow=c(2,2),pin=c(3.35,2.27))
plot(wt,mpg,main="Scatterplot pf wt vs. mpg")
plot(wt,disp,main="Scatterplot of wt vs. disp")
boxplot(wt,main="Boxplot of wt")
hist(wt,main="Histogram of wt")
par(opar)
detach(mtcars)
attach(mtcars)
opar <- par(no.readonly = TRUE)
par(mfrow=c(3,1))
hist(wt)
hist(mpg)
hist(disp)
par(opar)
detach(mtcars)
;;可以通过main=“”来禁用标题,或者ann=FALSE来禁用所有标题和标签
还有一个超好用的layout( )函数
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
还可以通过widths和heights两个向量来调节各行各列的大小
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow = TRUE),
widths = c(3,1),heights=c(1,2))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
(十)图形布局的精细控制
opar <- par(no.readonly=TRUE)
par(fig=c(0,0.8,0,0.8))
attach(mtcars)
plot(wt,mpg,
xlab="Miles,Per Gallon",
ylab="Car Weight")
par(fig=c(0,0.8,0.55,1),new=TRUE)
boxplot(wt,horizontal=TRUE,axes=FALSE)
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(mpg,axes=FALSE)
mtext("Enhanced Scatterplot",side=3,outer=TRUE,line=-3)
par(opar)
|
请发表评论