2014-02-12 4 views
0

원시 데이터에서 도수 분포도를 작성하는 간단한 스크립트를 작성했습니다. 내가 옳게 할 수없는 유일한 것은 x 축입니다. 아래에서 볼 수 있듯이 숫자가 너무 길면 읽을 수없는 전자 표기법으로 작성됩니다 (또한 레이블은 그림에서 잘라내기에 충분합니다).주파수 도형에서 x 축 변경

enter image description here

일반적으로 나는 digits = X을 사용하지만 불행히도이 표기법은 명령 cut와 함께 사용할 수 없습니다. 전체 코드가 첨부됩니다. 또한, 그래프를 더 읽기 쉽게 만드는 다른 조언도 환영합니다.

##Paramaters definition 
num.bins = 60 #The number of bins you want to be used 
w.data = 2 #The column you have the data in 

##Data loading 
dataset = read.csv(file.choose()) 

##Calculating frequency 
d.min = min(dataset[,w.data]) 
d.max = max(dataset[,w.data]) 

breaks = seq(d.min, d.max, by = (d.max-d.min)/num.bins) 
d.cut = cut((dataset[,w.data]), breaks, right = FALSE, digits = 6) 
d.freq = table(d.cut) 

##Plot 
plot(d.freq, ylab = 'Frequency', las = 2) 
+0

그래서'cut' 함수는 간격 라벨이 붙는 방법을 제어하는'labels' 인자를 가지고 있습니다. 당신은'labels' 인자를 사용하여 간격을 어떻게 표시 할 것인지 또는 지금까지 시도한 것을 말하지 않았습니다. – joran

+0

다른 스레드에서 답을 확인하십시오 : [Y 축의 비율 변경 형식] (http://stackoverflow.com/questions/8918452/r-changing-format-of-scale-on-y-axis). – celiomsj

답변

0

내 자신의 질문에 답하는 것이 이상합니다. 그러나 해결책을 찾았습니다.

cut 함수는 digits에 해당하는 dig.lab 인수를가집니다. 동일한 기능을 가진 두 명령이 다른 이름으로 구현 된 이유는 무엇입니까? 올바른 방향으로 날을 가리키는 위해

가 @joran 당신에게 대단히 감사하고 @celiomsj :

##Paramaters definition 
num.bins = 35 #The number of bins you want to be used 
w.data = 2 #The column you have the data in 

##Data loading 
#dataset = read.csv(file.choose()) 

##Calculating frequency 
d.min = min(dataset[,w.data]) 
d.max = max(dataset[,w.data]) 

breaks = seq(d.min, d.max, by = (d.max-d.min)/num.bins) 
d.cut = cut((dataset[,w.data]), breaks, right = FALSE, dig.lab = 6) 
d.freq = table(d.cut) 

##Plot 
par(mar=c(4,4.5,3,1)) 
par(oma=c(4,2,0,0)) 
plot(d.freq, ylab = 'Frequency', las = 2) 
mtext(side=3, text="Frequency Distribution", line=1.2, cex=1.5) 
이 결과

:

그래서, 수정 된 코드는 같이 보입니다 .