2013-02-03 10 views
5

boxplot Rで秒単位で測定されたデータの場合、y軸のスケールを秒単位から数分単位に変更するにはどうすればよいですか? R:y軸の分と秒を含むboxplot

data <- c(298, 507, 1008, 346) 
boxplot(data) 

は、私が1000に300からy軸と boxplotを取得し、私はそこに「午後4時40分」「5:00」がしたい:私はこのような何かを例えば

代わりに、単純に秒を分と秒に変換した秒数です。

答えて

8

これは試行です。最初にy軸をオフにしてからデータを分単位に変換し、y軸にティックマークとして追加します。

"はかなり目盛りの位置、Rは内部でないと同じように計算し。"(?axTicksから):少し説明を提供する

data <- c(298, 507, 1008, 346) 
boxplot(data, yaxt="n") 
at <- axTicks(2) 
axis(2, at=at, labels=sprintf("%d:%02d", at %/% 60, at %% 60), las=1) 

%/%は、与えられた場合x %/% yxyに入る回数を教えてくれますしながら、

%%は、分割後のあなたの残りの部分を与えます。

最後に、sprintfは即ち、常に必要な場合0年代をリード追加するストリングと意思パッド算出し秒の値をフォーマットするために使用される - 202なります。機能axis.POSIXct

enter image description here

+0

これは私が必要なもの_exactly_です。どうもありがとう :-) –

3

代替:

data <- c(298, 507, 1008, 346) 
data2 <- as.POSIXct(data, origin=cut(Sys.time(), "hours")) 
boxplot(data2, pars=list(yaxt="n")) 
axis.POSIXct(2, at=pretty(data2), format="%M:%S", las=2) 

enter image description here

関連する問題