从本章开始切换到R语言实战的第二版
使用如下代码实现图形生成和保存:
> pdf("mygraph.pdf")
> attach(mtcars)
> plot(wt, mpg)
> abline(lm(mpg~wt))
> title("Regression of MPG on Weight")
> detach(mtcars)
> dev.off()
Paste_Image.png
以下代码是修改后的图形效果,最后一句和前四句的效果等价。
> opar <- par(no.readonly = TRUE)
> par(lty=2,pch=17)
> plot(dose, drugA, type="b")
> par(opar)
> plot(dose, drugA, type="b", lty=2, pch=17)
Paste_Image.png
下面这句代码改出了不同的效果。
> plot(dose, drugA, type="b", lty=3, lwd=3, pch=15, cex=2)
Paste_Image.png
改变颜色的代码:
> install.packages("RColorBrewer")
Warning in install.packages :
URL 'https://cran.rstudio.com/bin/macosx/mavericks/contrib/3.3/PACKAGES.gz': status was 'Couldn't resolve host name'
试开URL’https://cran.rstudio.com/bin/macosx/mavericks/contrib/3.3/RColorBrewer_1.1-2.tgz'
Content type 'application/x-gzip' length 24183 bytes (23 KB)
==================================================
downloaded 23 KB
The downloaded binary packages are in
/var/folders/x4/z0tbf7cs0cg_rkyc0g28dsqc0000gn/T//RtmpJprzN4/downloaded_packages
> library(RColorBrewer)
> n <- 7
> mycolors <- brewer.pal(n,"Set1")
> barplot(rep(1,n), col=mycolors)
Paste_Image.png
> n <- 10
> mycolors <- rainbow(n)
> pie(rep(1, n), labels=mycolors, col=mycolors)
> mygrays <- gray(0:n/n)
> pie(rep(1, n), labels=mygrays, col=mygrays)
Paste_Image.png
修改图形外观的代码:
> 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))
> par(lwd=2, cex=1.5)
> par(cex.axis=.75, font.axis=3)
> plot(dose, drugA, type="b", pch=19, lty=2, col="red")
> plot(dose, drugB, type="b", pch=23, lty=6, col="blue", bg="green") par(opar)
Paste_Image.png
添加文本、自定义坐标轴和图例
Paste_Image.png
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)
Paste_Image.png
> 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)
> 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=0.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=c(1,5,7))
> abline(v=seq(1,10,2), lty=2, col="blue")