logo

Rでのログログスケールプロットの描き方 📂R

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\')

1.png ログログスケールで図を描く一番簡単な方法は、データ自体にログを取ることだ。ログログプロットを初めて描くなら、この方法は必ず覚えておく方がいい。Rでも他の言語でもこの方法は使えるから、急ぐ時に役立つ。もちろん、この方法は頭が楽な分、手が少し面倒くさい。

win.graph(5,5)
plot(pressure,main='Pressure\',log="xy")

お勧めの方法

2.png 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))

3.png 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))