R语言学习笔记(九):中级绘图
散点图 attach(mtcars) plot(wt,mpg,main="Basic Scatter plot of MPG vs. Weight", xlab="Car Weight (lbs/1000)", ylab="Miles Per Gallon",pch=19) abline(lm(mpg~wt),col="red",lwd=2,lty=1) lines(lowess(wt,mpg),col="blue",lwd=2,lty=2)
library(car) scatterplot(mpg~wt|cyl,data=mtcars,lwd=2,span=0.75,main="Scatter Plot of MPG vs. Weight by # Cylinders", xlab="Weight of Car(lbs/1000)",ylab="Miles Per Gallon",legend.plot=TRUE,id.method="identify",labels=row.names(mtcars),boxplots="xy")
library(car) scatterplot(mpg~wt|cyl,data=mtcars,lwd=2,span=0.75,main="Scatter Plot of MPG vs. Weight by # Cylinders", xlab="Weight of Car(lbs/1000)",ylab="Miles Per Gallon",legend.plot=TRUE,id.method="identify",labels=row.names(mtcars),boxplots="xy")
#散点图矩阵 包含回归线 scatterplotMatrix(~mpg+disp+drat+wt,data=mtcars,sprea=FALSE,smoother.args=list(lty=2),main="Scatter Plot Matrix via car Package")
#高密度散点图 set.seed(1234) n<-10000 c1<-matrix(rnorm(n,mean=0,sd=.5),ncol=2) c2<-matrix(rnorm(n,mean=3,sd=2),ncol=2) mydata<-rbind(c1,c2) mydata<-as.data.frame(mydata) names(mydata)<-c("x","y") with(mydata, plot(x,y,pch=19,main="Scatter Plot with 10,000 Observations"))
#热点 with(mydata,smoothScatter(x,y,main="Scatter Plot Colored by Smoothed Densities"))
install.packages("hexbin") library(hexbin) with(mydata,{ bin<-hexbin(x,y,xbins=50) plot(bin,main="Hexagonal Binning with 10,000 Observations") })
#三维散点 install.packages("scatterplot3d") library(scatterplot3d) attach(mtcars) scatterplot3d(wt,disp,mpg,main="Basic 3D Scatter Plot") scatterplot3d(wt,disp,mpg,pch=16,highlight.3d = TRUE,type="h",main="3D Scatter Plot with Vertical Lines") s3d<-scatterplot3d(wt,disp,mpg,pch=16,highlight.3d=TRUE,type="h",main="3D Scatter Plot with Vertical Lines and Regression Plane") fit<-lm(mpg~wt+disp) s3d$plane3d(fit)
#旋转三维散点 install.packages("rgl") library(rgl) plot3d(wt,disp,mpg,col="red",size=5) library(car) with(mtcars,scatter3d(wt,disp,mpg))
#气泡图 attach(mtcars) r<-sqrt(disp/pi) symbols(wt,mpg,circle=r,inches=0.30,fg="white",bg="lightblue",main="Bubble Plot with point size proportional to displacement",ylab="Miles Per Gallon",xlab="Weight of Car (lbs/1000)") text(wt,mpg,rownames(mtcars),cex=0.6)
#折线图 opar<-par(no.readonly = TRUE) par(mfrow=c(1,2)) t1<-subset(Orange,Tree==1) plot(t1$age,t1$circumference,xlab="Age (days)",ylab="Circumference (mm)",main="Orange Tree 1 Growth") plot(t1$age,t1$circumference,xlab="Age (days)",ylab="Circumference (mm)",main="Orange Tree 1 Growth",type="b") par(opar)
#折线图汇总 par(mfrow=c(1,1)) Orange$Tree<-as.numeric(Orange$Tree) ntrees<-max(Orange$Tree) xrange<-range(Orange$age) yrange<-range(Orange$circumference) plot(xrange,yrange,type="n",xlab="Age (days)",ylab="Circumference (mm)") colors<-rainbow(ntrees) linetype<-c(1:ntrees) plotchar<-seq(18,18+ntrees,1) for(i in 1:ntrees) { tree<-subset(Orange,Tree==i) lines(tree$age,tree$circumference,type="b",lwd=2,lty=linetype[i],col=colors[i],pch=plotchar[i]) } title("Tree Growth","example of line plot") legend(xrange[1],yrange[2],1:ntrees,cex=.8,col=colors,pch=plotchar,lty=linetype,title="Tree")
#相关图 install.packages("corrgram") library(corrgram) corrgram(mtcars,order=TRUE,lower.panel=panel.shade,upper.panel=panel.pie,text.panel=panel.txt,main="Corrgram of mtcars intercorrelations") corrgram(mtcars,order=TRUE,lower.panel = panel.ellipse,upper.panel = panel.pts,text.panel = panel.txt,diag.panel = panel.minmax,main="Corrgram of mtcars data using scatter plots and ellipses") corrgram(mtcars,lower.panel = panel.shade,upper.panel = NULL,text.panel = panel.txt,main="Car Mileage Data (unsorted)")
#马赛克图 library(vcd) mosaic(Titanic,shade=TRUE,legend=TRUE) library(vcd) mosaic(~Class+Sex+Age+Survived,data=Titanic,shade=TRUE,legend=TRUE)