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()
함수는 말그대로 exponetial axis를 의미한다. 꼭 $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))