Rでのログログスケールプロットの描き方
良くない方法
win.graph(7,4); par(mfrow=c(1,2))
plot(pressure,main='Pressure\')
y<-pressure[-1,]$pressure; logtemp<-log(y)
x<-pressure[-1,]$temperature; logpress<-log(x)
plot(logpress,logtemp,main='log scale\')
ログログスケールで図を描く一番簡単な方法は、データ自体にログを取ることだ。ログログプロットを初めて描くなら、この方法は必ず覚えておく方がいい。Rでも他の言語でもこの方法は使えるから、急ぐ時に役立つ。もちろん、この方法は頭が楽な分、手が少し面倒くさい。
win.graph(5,5)
plot(pressure,main='Pressure\',log="xy")
お勧めの方法
Rのネイティブ関数plot()
だけを使ってログログ図を描くには、log="xy"
オプションを使用する。"x"
、"y"
、"xy"
の三つのオプションの中から一つを選べば、指定した軸に自動でログを取ってくれる。しかし、この方法は二つの変数の関係やトレンドを把握するには十分だが、それほど見栄えは良くない。これを克服するために、sfsmisc
パッケージのeaxis()
関数を使用する。
install.packages("sfsmisc")
library(sfsmisc)
win.graph(5,5)
plot(pressure,main='Pressure\',log="xy",xaxt='n',yaxt='n')
eaxis(1,at=10^(-4:4))
eaxis(2,at=10^(-4:4))
eaxis()
関数は文字通りエクスポネンシャル軸を意味する。必ず$10^{k}$だけを入れる必要はなく、必要ならば望む地点の値を入れても構わない。ただ、eaxis()
を使用する前にplot()
にxaxt="n"
とyaxt="n"
を入れて、元の目盛りを全て取り除いて綺麗にしたい図にする必要がある。
install.packages("sfsmisc")
library(sfsmisc)
win.graph(7,4); par(mfrow=c(1,2))
plot(pressure,main='Pressure\')
y<-pressure[-1,]$pressure; logtemp<-log(y)
x<-pressure[-1,]$temperature; logpress<-log(x)
plot(logpress,logtemp,main='log scale\')
win.graph(5,5)
plot(pressure,main='Pressure\',log="xy")
win.graph(5,5)
plot(pressure,main='Pressure\',log="xy",xaxt='n',yaxt='n')
eaxis(1,at=10^(-4:4))
eaxis(2,at=10^(-4:4))