0

私はこのようなdfを持っています:

Value   Time
10      2012-06-23 01:00:00
20      2012-06-23 02:00:00

時間は次のようにフォーマットされますas.PoSIXct(df$Time, format="%Y-%m-%d %H:%M:%S")

次のように、2 時間ごとに xaxis の目盛りを表示するように軸のブレークを設定しようとしています。

plot(df$Time, df$Value, ylim(0,100), xlim(seq(c("2012-06-23 01:00:00", "2012-06-23 23:00:00", 2)))

無効な xlim 値を取得します。何か案は?

私はこの行を試しましたが、まだ機能していません:

plot(df$Time, df$Value, col="red", type="l", xlab="Date", ylab="% Memory Utilization", xlim=seq(c(as.POSIXct("2012-06-23 01:00:00"), as.POSIXct("2012-06-23 23:00:00"), by="hour")))
4

3 に答える 3

2

xlim = を正しく指定し、POSIXlt 形式の日付を使用しても、同様の問題に遭遇しました。問題は、Rが日付にあまり適していないことだと思います。私はこれと同等のものでそれを解決しました:

my.limits <- c("2012-06-23 01:00:00", "2012-06-23 23:00:00")  # example data
my.limits <- as.numeric(my.limits)  # new step to convert data
plot(..., xlim = my.limits, ...)
于 2014-03-25T23:21:43.833 に答える
0

まず、問題を本質的な問題に分解するようにしてください。これはxlimステートメントであり、とは何の関係もありませんplotseqxlimに提供するもので実際に何をしていますか:

> seq(c("2012-06-23 01:00:00", "2012-06-23 23:00:00", 2))
[1] 1 2 3

明らかにそれが問題であり、次に焦点を当てる場所です。

次に、Rで時間ごとに日付シーケンスを作成することについて非常に具体的に検索できます。これにより、この質問にたどり着くことができます。それをあなたの質問に適用するのは簡単です:

seq(as.POSIXct("2012-06-23 01:00:00"), as.POSIXct("2012-06-23 23:00:00"), by="hour")

これは次のようになります。

 [1] "2012-06-23 01:00:00 MDT" "2012-06-23 02:00:00 MDT" "2012-06-23 03:00:00 MDT" "2012-06-23 04:00:00 MDT"
# all the other rows...
[21] "2012-06-23 21:00:00 MDT" "2012-06-23 22:00:00 MDT" "2012-06-23 23:00:00 MDT"

また、プロット関数にパラメータを誤って指定しています。xlim=ではなく、を使用する必要がありますxlim(...)

于 2012-07-31T15:38:27.657 に答える
0

いくつかの問題があります。まず、それxlimは関数ではなく引数であり、xlim=ではなく である必要がありますxlim(が、括弧の不一致により、タイプミスであると予想されます。試した実際のコードをコピーして貼り付ける方がよいでしょう (エラー、警告、出力など)。

第 2 に、seq 関数には 2 つの日付ではなく 2 つの文字列が渡されますseq。正しいメソッドが呼び出されるように、それらを明示的に日付に変換して関数に渡す必要があります (また、2 が時間を参照するように指定する必要がある場合もあります)。分、日などではありません)。

再現可能な例 (dputコピーして貼り付けることができるデータを作成するために使用) および/または実際の出力とメッセージを提供していただけると、サポートが容易になります。

于 2012-07-31T15:34:03.317 に答える