少し変わった直線は、それなりに手続きが必要になるわけですが、
- matlines関数
matplot関数のlines関数になります。
> dat <- t(sapply(seq(1,8,2),function(i) sort(rnorm(4,mean=i,sd=1)))) > dimnames(dat) <- lapply(c("row","col"),paste,1:4) > > jpeg("matlines.jpeg") > matplot(dat,pch=20,col=1,xaxt="n") > matlines(dat) > mtext(rownames(dat),at=1:4,side=1) > dev.off()
> dat <- sapply(c(1,3),function(i) rnorm(20,mean=5,sd=i)) > colnames(dat) <- paste("row",1:2) > > jpeg("matlines2.jpeg") > boxplot(dat,col=rgb(r=1:2/2,g=2:1/2,b=0,a=.5),outline=FALSE) > matpoints(t(dat),pch=20,col=1) > matlines(t(dat),col=1,lty=ifelse(apply(dat,1,diff)>0,1,2)) > dev.off()
- arrows関数
その名の通り、矢印を描く関数です。
> jpeg("arrows.jpg") > plot(NA,xlim=c(0,6),ylim=c(0,5)) > # 矢尻のあり、なし > arrows(x0=0,y0=1,x1=1,y1=1,code=0) > arrows(x0=0,y0=2,x1=1,y1=2,code=1) > arrows(x0=0,y0=3,x1=1,y1=3,code=2) > arrows(x0=0,y0=4,x1=1,y1=4,code=3) > > # 矢尻の角度 > arrows(x0=2,y0=1,x1=3,y1=1,angle=0) # code=0とは違い、矢尻を描いている > arrows(x0=2,y0=2,x1=3,y1=2,angle=30) # default > arrows(x0=2,y0=3,x1=3,y1=3,angle=60) > arrows(x0=2,y0=4,x1=3,y1=4,angle=90) > arrows(x0=5,y0=1,x1=4,y1=1,angle=120) > arrows(x0=5,y0=2,x1=4,y1=2,angle=-30) # angle=30と同じ > > # 矢尻の長さ > arrows(x0=5,y0=3,x1=4,y1=3,length=.5) > arrows(x0=5,y0=4,x1=4,y1=4,length=1.5) > dev.off()
もちろん引数lwd、引数colも使えます。