?Sweave librar() library() source("http://bioconductor.org/biocLite.R") biocLite() library(ISwR) data(cystfiber) data(cystfibr) ls() str(cystfibr) save(cysfibr,"cysfibr.RData") save(cysfibr,file="cysfibr.RData") save(cystfibr,file="cystfibr.RData") dir() ?Renviron library(gdata) ?read.xls library(nlme) library(ElemStatLearn) data(ElemStatLearn) help(ElemStatLearn) plot(rnorm(100),main="été") library(tkrplot) ?tkrplot examples(tkrplot) examples() setwd("~/www/articles/r-graphics") setwd("Users/chl/www/articles/r-graphics") setwd("/Users/chl/www/articles/r-graphics") load(".RData") xx ?round y <- rnorm(100,0,(1+2*rbinom(100,1,0.35))) length(y) ?dnorm x <- y xx <- seq(min(x),max(x),length=length(x)) length(xx) length(dnorm(xx,mean=mean(x),sd=sd(x))) ?hist ?desnity ?expression as.numeric(tclvalue(c(.5,3))) ?tkscale ?warning source("density_tk.R") rm(list=ls()) PNG <- FALSE x <- rnorm(20,mean=20,sd=2.5) y <- rnorm(20,mean=22,sd=2.3) if (PNG) png("ex1.png") boxplot(x,y) points(c(rep(1,20),rep(2,20)),c(x,y),col='gray50') points(c(1,2),c(mean(x),mean(y)),pch='x',cex=2,col=c('blue','red')) if (PNG) dev.off() ?collapse y <- rnorm(100) x <- gl(4,25,100,labels=paste("g",1:4,sep="")) stripchart(y~x,method='stack',vertical=T) (moy <- as.numeric(tapply(y,x,mean))) points(1:4,moy,pch="X",col='blue',cex=2) lines(1:4,moy,col='blue',lwd=2) y <- rnorm(1000) x <- gl(4,25,1000,labels=paste("g",1:4,sep="")) stripchart(y~x,method='stack',vertical=T) (moy <- as.numeric(tapply(y,x,mean))) points(1:4,moy,pch="X",col='blue',cex=2) lines(1:4,moy,col='blue',lwd=2) ?stripchart y <- rnorm(1000) x <- gl(4,25,1000,labels=paste("g",1:4,sep="")) stripchart(y~x,method="jitter",vertical=T) (moy <- as.numeric(tapply(y,x,mean))) points(1:4,moy,pch="X",col='blue',cex=2) lines(1:4,moy,col='blue',lwd=2) png("ex2.png") stripchart(y~x,method="jitter",ylab="Y",xlab="X",vertical=T) (moy <- as.numeric(tapply(y,x,mean))) points(1:4,moy,pch="X",col='blue',cex=2) lines(1:4,moy,col='blue',lwd=2) getwd() ?rpois y <- rpois(1000,10) stripchart(y~x,method="stack",ylab="Y",xlab="X",vertical=T) x png("ex3.png") y <- rpois(500,10) x <- gl(4,25,500,labels=paste("g",1:4,sep="")) stripchart(y~x,method="stack",ylab="Y",xlab="X",vertical=T) png("ex5.png") old.par <- par(mar=c(5,4,4,5))# xx <- c(.2, .5, .8)# yy <- xx*0.8+0.1# plot(c(0,1), c(0,1), type="n", axes=FALSE, xlab=expression(Theta), ylab="")# axis(1, at=xx, labels=c(expression(theta[1]),expression(theta[2]),expression(theta[3])))# axis(2, at=yy, las=1, labels=c(expression(widehat(y)[1]),# expression(widehat(y)[2]),expression(widehat(y)[3])))# axis(4, at=seq(0,1,by=0.5), las=1)# box()# # abline(0.1,0.8)# # # x <- seq(-3,3,length=100)# y <- dnorm(x)/2# threshold <- 0.35# for (i in 1:3) {# y1 <- x/12 + yy[i]# x1 <- y + xx[i]# lines(x1, y1)# whichy <- y1>=threshold# new.x1 <- c(xx[i],x1[whichy])# new.y1 <- c(y1[whichy][1],y1[whichy])# polygon(new.x1, new.y1, col="light blue", border=NA)# }# abline(h=yy, lty=3, col="gray")# abline(h=threshold,lwd=3,col="blue")# mtext(c(expression(Upsilon1),expression(Psi)),side=c(2,4),line=3,las=1)# par(old.par) rep(1:2,2) ?factor y <- rnorm(100) x1 <- gl(2,50,100,labels=paste("c",1:2,sep="")) x2 <- factor(rep(1:4,25),labels=letters[1:4]) y x1 x2 y <- rnorm(100) x1 <- gl(2,50,100,labels=paste("c",1:2,sep="")) x2 <- factor(rep(1:4,25),labels=letters[1:4]) y.means <- tapply(y,list(x1,x2),mean) y.sd <- tapply(y,list(x1,x2),sd) my.barplot <- function(data, err, ...) { tmp <- barplot(data, ...) if (length(err) != length(data)) stop("la longueur de 'data' et 'err' ne correspond pas") for (i in 1:length(err)) arrows(tmp[i],data[i]-err[i],tmp[i],data[i]+err[i], code=3,angle=90,length=0.08) } my.barplot(y.means,y.sd,beside=T,ylab="Y",xlab="X2", ylim=c(0,26),names.arg=levels(x2),legend.text=levels(x1), cex.axis=.7,cex.names=.7,cex.lab=.7) y <- rnorm(100,mean=20) x1 <- gl(2,50,100,labels=paste("c",1:2,sep="")) x2 <- factor(rep(1:4,25),labels=letters[1:4]) y.means <- tapply(y,list(x1,x2),mean) y.sd <- tapply(y,list(x1,x2),sd) my.barplot <- function(data, err, ...) { tmp <- barplot(data, ...) if (length(err) != length(data)) stop("la longueur de 'data' et 'err' ne correspond pas") for (i in 1:length(err)) arrows(tmp[i],data[i]-err[i],tmp[i],data[i]+err[i], code=3,angle=90,length=0.08) } my.barplot(y.means,y.sd,beside=T,ylab="Y",xlab="X2", ylim=c(0,26),names.arg=levels(x2),legend.text=levels(x1), cex.axis=.7,cex.names=.7,cex.lab=.7) y <- c(rnorm(50,mean=20),rnorm(50,mean=15)) x1 <- gl(2,50,100,labels=paste("c",1:2,sep="")) x2 <- factor(rep(1:4,25),labels=letters[1:4]) y.means <- tapply(y,list(x1,x2),mean) y.sd <- tapply(y,list(x1,x2),sd) my.barplot <- function(data, err, ...) { tmp <- barplot(data, ...) if (length(err) != length(data)) stop("la longueur de 'data' et 'err' ne correspond pas") for (i in 1:length(err)) arrows(tmp[i],data[i]-err[i],tmp[i],data[i]+err[i], code=3,angle=90,length=0.08) } my.barplot(y.means,y.sd,beside=T,ylab="Y",xlab="X2", ylim=c(0,26),names.arg=levels(x2),legend.text=levels(x1), cex.axis=.7,cex.names=.7,cex.lab=.7) y <- c(rnorm(50,mean=20),rnorm(50,mean=15,sd=3)) x1 <- gl(2,50,100,labels=paste("c",1:2,sep="")) x2 <- factor(rep(1:4,25),labels=letters[1:4]) y.means <- tapply(y,list(x1,x2),mean) y.sd <- tapply(y,list(x1,x2),sd) my.barplot <- function(data, err, ...) { tmp <- barplot(data, ...) if (length(err) != length(data)) stop("la longueur de 'data' et 'err' ne correspond pas") for (i in 1:length(err)) arrows(tmp[i],data[i]-err[i],tmp[i],data[i]+err[i], code=3,angle=90,length=0.08) } my.barplot(y.means,y.sd,beside=T,ylab="Y",xlab="X2", ylim=c(0,26),names.arg=levels(x2),legend.text=levels(x1), cex.axis=.7,cex.names=.7,cex.lab=.7) png("ex6.png") my.barplot(y.means,y.sd,beside=T,ylab="Y",xlab="X2", ylim=c(0,26),names.arg=levels(x2),legend.text=levels(x1), cex.axis=.7,cex.names=.7,cex.lab=.7) a <- matrix(NA,nrow=len,ncol=2) a[,1] <- c(2,3,3,6,5,12,15,20) a[,2] <- c(1,4,2,3,9,10,30,35) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") col <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=c(col.ciep[1],col.ciep[4]),las=1,xlab="Nb. associations",main="Langues représentées",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=c(col.ciep[1],col.ciep[4]),bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=len,ncol=2) a[,1] <- c(2,3,3,6,5,12,15,20) a[,2] <- c(1,4,2,3,9,10,30,35) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Nb. associations",main="Langues représentées",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- c(2,3,3,6,5,12,15,20) a[,2] <- c(1,4,2,3,9,10,30,35) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Nb. associations",main="Langues représentées",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- rev(c(2,3,3,6,5,12,15,20)) a[,2] <- rev(c(1,4,2,3,9,10,30,35)) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Nb. associations",main="Langues représentées",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- c(2,3,3,6,5,12,15,20) a[,2] <- c(1,4,2,3,9,10,30,35) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(rev(a)),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Nb. associations",main="Langues représentées",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- c(2,3,3,6,5,12,15,20) a[,2] <- c(1,4,2,3,9,10,30,35) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(rev(t(a)),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Nb. associations",main="Langues représentées",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- rev(c(2,3,3,6,5,12,15,20)) a[,2] <- rev(c(1,4,2,3,9,10,30,35)) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Nb. associations",main="",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- rev(c(2,3,3,6,5,12,15,20)) a[,2] <- rev(c(1,4,2,3,9,10,30,30)) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Effectifs",main="",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- rev(c(2,3,3,6,5,12,15,20)) a[,2] <- rev(c(1,4,2,3,9,10,30,30)) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255),rgb(180/255,210/255,244/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 20 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols,las=1,xlab="Effectifs",main="",xlim=c(0,max(a.margin)+x.offset)) legend("topright",c("1","2"),pch=rep(19,2),col=cols,bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4,cex=.8) a <- matrix(NA,nrow=8,ncol=2) a[,1] <- rev(c(2,3,3,6,5,12,15,20)) a[,2] <- rev(c(1,4,2,3,9,10,30,30)) rownames(a) <- LETTERS[1:8] colnames(a) <- c("1","2") cols <- c(rgb(105/255,166/255,233/255), rgb(180/255,210/255,244/255), rgb(0/255,78/255,162/255)) a.prop <- round(a/sum(a)*100,2) a.margin <- apply(a,1,sum) x.offset <- 25 par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols[1:2],las=1,xlab="Effectif",main="",xlim=c(0,max(a.margin)+x.offset),border=cols[3]) legend("topright",c("1","2"),pch=rep(19,2),col=cols[1:2],bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4,cex=.8) png("ex7.png") par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols[1:2],las=1,xlab="Effectif",main="",xlim=c(0,max(a.margin)+x.offset),border=cols[3]) legend("topright",c("1","2"),pch=rep(19,2),col=cols[1:2],bty="n") labs <- paste(paste(as.character(a.prop[,1]),"%",sep=""),paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4,cex=.8) par(mar=c(5,6,4,2)) bp <- barplot(t(a),names.arg=rownames(a),horiz=T,col=cols[1:2], las=1,xlab="Effectif",main="",xlim=c(0,max(a.margin)+x.offset), border=cols[3]) legend("topright",c("1","2"),pch=rep(19,2),col=cols[1:2],bty="n") labs <- c(paste(as.character(a.prop[,1]),"%",sep=""), paste(as.character(a.prop[,2]),"%",sep=""),sep=" / ") text(a.margin,bp,labs,pos=4,cex=.8) a<-rnorm(100) b<-2*a+rnorm(100) c<-5*a+rnorm(100)+runif(100)*2 pairs(cbind(a,b,c)) png("ex8.png") pairs(cbind(a,b,c)) help.search("hexbin") library(hexbin) ?hexbin x <- rnorm(10000)# y <- rnorm(10000) plot(hexbin(x, y + x*(x+1)/4),# main = "(X, X(X+1)/4 + Y) where X,Y ~ rnorm(10000)") ?plotmath plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main = expression(frac(X %.% (X+1)/4,Y) ~~ X,Y iid ~ cal(N)") plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main = expression(frac(X %.% (X+1)/4,Y) ~~ X,Y iid %~% bold(N)") plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main = expression(frac(X %.% (X+1)/4,Y))) plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main = expression(frac(X %.% (X+1),4)+Y))) plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main = expression(frac(X %.% (X+1),4)%+%Y))) plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main = expression(frac(X %.% (X+1),4) + Y)) plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main = expression(frac(X %.% (X+1),4) + Y ~~ X,Y)) png("ex10.png") plot(hexbin(x, y + x*(x+1)/4), ylab="Y", main=expression(frac(X %.% (X+1),4) + Y)) ?contourplot ?contour library(survey) ?survey help.search("survey") data(api)# dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)# # svyplot(api00~api99, design=dstrat, style="bubble") ?svyplot(api00~api99, design=dstrat, style="hex", xlab="1999 API",ylab="2000 API") svyplot(api00~api99, design=dstrat, style="hex", xlab="1999 API",ylab="2000 API") svyplot(api00~api99, design=dstrat, style="hexgray", xlab="1999 API",ylab="2000 API") svyplot(api00~api99, design=dstrat, style="grayhex", xlab="1999 API",ylab="2000 API") png("ex11.png") svyplot(api00~api99, design=dstrat, style="bubble") par(mfrow=c(1,2)) svyplot(api00~api99, design=dstrat, style="hex", xlab="1999 API", ylab="2000 API") svyplot(api00~api99, design=dstrat, style="grayhex",legend=0) ?layout layout(matrix(1,2),1,2,byrow=T) layout(matrix(1,2),1,2,byrow=T)) layout(matrix(c)(1,2),1,2,byrow=T)) layout(matrix(c(1,2),1,2,byrow=T)) layout.show() svyplot(api00~api99, design=dstrat, style="hex", xlab="1999 API",# ylab="2000 API") png("ex12.png") svyplot(api00~api99, design=dstrat, style="hex", xlab="1999 API", ylab="2000 API") png("ex13.png") svyplot(api00~api99, design=dstrat, style="grayhex",legend=0) library(ggplot) library(ggplot2) diamonds <- read.csv("http://had.co.nz/stat480/lectures/diamonds.csv") d <- diamonds qplot(price, data=d, type="histogram") str()diamonds) str(diamonds) qplot(price, data=d, type="histogram", breaks=seq(0,20000, by=500)) ggfluctuation(table(d$cut, d$color)) ?qplot qplot(price, carat, data=diamonds) qplot(carat, price, data=diamonds, colour=color) png("ex14.png") qplot(carat, price, data=diamonds, size=carat) dev.off()