Rで秒単位で測定されたデータがある場合boxplot
、y軸のスケールを秒から分および秒に変更するにはどうすればよいですか?
たとえば、次のようなことをすると:
data <- c(298, 507, 1008, 346)
boxplot(data)
300 から 1000 までの y 軸を取得boxplot
します。代わりに、「5:00」から「16:40」までを表示したいと思います。秒を分と秒に変換するだけです。
これが試みです。最初に y 軸をオフにしてから、データを分に変換し、目盛りとして y 軸に追加します。
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)
少し説明するには:
axTicks
" R が内部的に行うのと同じ方法で、プリティ ティックマークの位置を計算します。 " (から?axTicks
)。
%%
は除算後の剰余を返します%/%
が、与えられた場合は にx %/% y
何回x
入るかを教えてくれますy
。
最後に、はsprintf
文字列の書式設定に使用され、計算された秒の値をパディングして、0
必要に応じて常に先頭に を追加します。2
02
関数の代替axis.POSIXct
:
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)