2017-09-28 6 views
0

hh:mm:ssで表示できるようにx軸をどのようにフォーマットできますか?hh:mm:ss変数のqplotを使った時系列プロット - どのようにフォーマットするのですか?

これは私のセットのサンプルです:

structure(list(Catraca = c(1L, 253L, 72L, 49L, 2L, 391L, 53L, 
52L, 505L, 206L, 105L, 169L, 180L, 222L, 165L, 192L, 286L, 129L, 
337L, 270L), Horario = structure(c(360L, 660L, 1740L, 1800L, 
1980L, 1980L, 2280L, 2280L, 6060L, 6660L, 6720L, 7200L, 7260L, 
7920L, 8460L, 8460L, 8580L, 8580L, 9000L, 9060L), class = "ITime")), .Names = c("Catraca", 
"Horario"), class = c("data.table", "data.frame"), row.names = c(NA, 
-20L)) 

最初の列は、整数、及び第二のある私はHHを表示したいので、POSIXct属性から来たITIMEクラス、以下のとおりです。MM: ssのみ。

これは私がプロットしようとした方法です: qplot(data = b, x = Horario, y = Catraca)私はHorario何らかの形でフォーマットする必要があることを知っていますが、Web上で見つけられません。あなたの助けが必要です。

注: Rスタジオはこのメッセージを表示しDon't know how to automatically pick scale for object of type ITime. Defaulting to continuous.

答えて

1

ITimedata.tableパッケージに固有のクラスであるので、qplot()はそれを処理する方法を知っている(とだけで根本的な整数値に作用する)しません。

ベースRには時間限定のクラスがないと思うので、おそらくパッケージを使う必要があります。 chronパッケージはhereとして機能しますが、それはtidyverseの一部であるため、ggplot2はhms packageでよりうまく動作します。

EDITノバからの回答に基づく。経過時間の合計が本当に小さくなければ

b$time <- as.POSIXct(paste0("2017-09-28 ", b$Horario)) 
qplot(data = b, x = time, y = Catraca) 

はしかし、私はそれが時間の大きな丸い単位(例えば、時間、半時間)に基づいて、軸の目盛り/ラベルをピックアップするので、それは今までの秒を表示します疑います。

実際に軸の目盛とラベルの表示方法をカスタマイズする場合は、qplot()からggplot()に切り替えるのが最も簡単です。

+0

私が心配しているのは分なので問題ありません。プロットははるかに良く見えます。今、私はそれを持って来た*セット28 *を取り除く方法を見つけなければならない。 – Homunculus

1

データのより良い例を投稿できますか?私はそれをdata.frameにしようとするとエラーメッセージが出ます。

このような問題の場合、単純な回避策は、日付と時刻をPOSIXct型にすることですが、すべて同じ日付にします。通常、プロッティングプログラムは軸上の時刻のみを表示し、日付は無視します。

+0

データの問題が解決されました。申し訳ありません。セットが使用可能になりました(data.tableライブラリをインポートする必要があります)。トピックを変更する、あなたが私に与えた提案はいいです、qplotの表示方法を見てみましょう – Homunculus

関連する問題