今天狀態(tài)不好煌张,但是學(xué)習(xí)R語言呐赡,貌似就是對著書本瞧瞧代碼退客,瞧瞧代碼,很適合打發(fā)時(shí)間链嘀,出來圖形時(shí)候的微微成就感還是很有治愈效果的萌狂。
3.圖形初階
3.1使用圖形
pdf("mygraph.pdf") #保存為pdf文件
attach(mtcars) #綁定數(shù)據(jù)框mtcars
plot(wt,mpg) #散點(diǎn)圖
abline(lm(mpg~wt)) #添加一條最優(yōu)的擬合曲線
title("Regression of MPG on Weight") #添加標(biāo)題
detach(mtcars) #解除綁定
dev.off()
3.2簡單的例子####
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",pch=19,lty=2,col="red")
plot(dose,drugB,type="b",pch=23,lty=6,col="blue",fg="green")
試了下最后一行的代碼里的fg,居然是講邊框的顏色改為綠色。贊嘍~
3.3圖形參數(shù)
方法一可對全部的圖形進(jìn)行圖形參數(shù)的設(shè)定怀泊,但是該方法使用前最好要先保存當(dāng)前參數(shù)茫藏,保證繪制圖形后能還原設(shè)置。
par() #此參數(shù)可用于設(shè)定圖形參數(shù)霹琼,不添加任何參數(shù)會生成一個(gè)含有當(dāng)前參數(shù)設(shè)置的列表
opar<-par(no.readonly = TRUE) #將圖形設(shè)置的原參數(shù)賦值給opar
par(lty=2,pch=17)
par(opar)
另一種常用的方法是指定的選項(xiàng)僅對這幅圖有效务傲。
plot(dose,drugA,type="b",lty=2,pch=17)
具體查看參數(shù)幫助 ?plot
注意rainbow()函數(shù)可用于生成彩虹型顏色凉当,gray()可生產(chǎn)多階灰度
n<-10
mycolors<-rainbow(n)
pie(rep(1,n),labels = mycolors,col=mycolors)
mygrays<-gray(0:n/n)
pie(rep(1,n),lables=mygrays,col=mycolors)
3.4添加文本、自定義坐標(biāo)軸和圖例
plot(dose,drugA,type="b",
col="red",lty=2,pch=2,lwd=2,
main="clinical trial for drug A",
sub="this is hypothetical data",
xlab = "dosage",ylab="drug response",
xlim = c(0,60),ylim = c(0,70))
發(fā)現(xiàn)這些代碼太繁雜了售葡,再碼些例子試試看:
x<-c(1:10)
y<-x
z<-10/x #生成數(shù)據(jù)
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", #禁用Y軸(只留下框架看杭,去除刻度)
lty=3,ann=FALSE) #繪制圖形
lines(x,z,type="b",pch=22,col="blue",lty=2)#line()函數(shù)可以為現(xiàn)有圖形添加新的圖形元素
axis(2,at=x,labels = x,col.axis="red",las=2) #添加左邊的坐標(biāo)信息
axis(4,at=z,labels=round(z,digits = 2),
col.axis="blue",las=2,cex.axis=0.7,tck=-.01
) #添加右邊的坐標(biāo)信息
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")#添加標(biāo)題和文本
還可以添加次要刻度線,需要加載Hmisc包中的minor.tick()函數(shù)挟伙。
library("Hmisc")
minor.tick(nx=2,ny=3,tick.ratio=0.5)
添加參考線
abline(h=c(1,5,7)) #在y為1楼雹,5,7位置添加水平實(shí)線
abline(v=seq(1,10,2),lty=2,col="blue")
最終的結(jié)果如下圖:
添加文本標(biāo)注
attach(mtcars)
plot(wt,mpg,
main="Mileage vs. Car Weight",
xlab = "weight",ylab="Meileage",
pch=18,col="blue")
text(wt,mpg,row.names(mtcars),cex=0.6,pos=4,col="red")
detach(mtcars)
3.5圖形組合
attach(mtcars)
opar<-par(no.readonly = TRUE)
par(mfrow=c(2,2))#按照行填充尖阔,前一個(gè)數(shù)字為行數(shù)贮缅,后一個(gè)數(shù)字為列。
plot(wt,mpg,main = "wt vs. mpg")
plot(wt,disp,main = "wt vs. disp")
hist(wt,main = "histogram of wt")
boxplot(wt,main="boxplot of wt")
par(opar)
detach(mtcars)
效果如下: