Rできれいなべき乗(対数軸)のグラフを書く。

Rで両対数軸プロットをきれいに書く。
以下のことを要請する。

  • 10のべき乗 10^{N}の形式にする。
  • 副メモリをつける。


そうすると、こんな感じになる。

loglogjiku1<-function(){
alpha123<-par("plt")
alpha123[1]<-0.2
par(plt=alpha123)
par(xaxs="r")



}
#####
####
#####

loglogjiku1()

###### plot #######

x<-1:10000
y<-x^1.5

plot(x,y,log="xy",cex.col=0,xlab="",ylab="",xaxt="n",yaxt="n",bty="n",bty="o")

####軸を書く。#############


a123<-paste(collapse=",",paste(sep="","expression(10^",0:30,")"))

a123b<-paste(sep="","axis(2,las=2,at=10^(0:30),label=c(",a123,"),cex.axis=2,tck=0.03)")
eval(parse(text=a123b))

a123<-paste(collapse=",",paste(sep="","expression(10^",-30:30,")"))
a123c<-paste(sep="","axis(1,las=1,at=10^(-30:30),label=c(",a123,"),cex.axis=2,tck=0.03)")
eval(parse(text=a123c))

axis(2,at=10^(0:100)%x%(1:9),label=F,tck=0.01)

axis(4,at=10^(0:100),label=F,tck=0.03)

axis(4,at=10^(0:100)%x%(1:9),label=F,tck=0.01)


axis(1,at=10^(-100:100)%x%(1:9),label=F,tck=0.01)

axis(3,at=10^(-100:100),label=F,tck=0.03)

axis(3,at=10^(-100:100)%x%(1:9),label=F,tck=0.01)



#x軸、y軸のラベル
mtext("X ",1,line=3.8,cex=1.8,font=7)
mtext("Y ",2,line=3.8,cex=1.8,font=7)

#凡例
#legend(0.65,0.06,c("N=1","N=2","N=4","N=100","N=100,000"),pch=c(1,2,3,4,5),col=c(1,2,3,4,6),lty=c(1,1,1,1,1),cex=1.0)