3

別々のパネルではなく、同じパネル グラフに複数の時系列をプロットしたいと考えています。以下の R コードは、別の stackoverflow の投稿から取得しました。

3 つの時系列が 3 つの異なるパネルにあることに注意してください。1 つのパネルに 3 つの時系列を重ねるにはどうすればよいでしょうか。各線の色が異なる場合があります。

Time = Sys.time()+(seq(1,100)*60+c(rep(1,100)*3600*24, rep(2, 100)*3600*24, rep(3, 100)*3600*24))
Value = rnorm(length(Time))
Group = c(0, cumsum(diff(Time) > 1))

library(ggplot2)
g <- ggplot(data.frame(Time, Value, Group)) + 
 geom_line (aes(x=Time, y=Value, color=Group)) +
 facet_grid(~ Group, scales = "free_x")

上記のコードを実行すると、次のようになります。

ここに画像の説明を入力

パーツを削除するfacet_grid()と、次のようなグラフが得られます。

ggplotの悪いグラフ

基本的に、ggplot は日付の違いを無視し、時間のみを考慮したいと考えています。そしてgroup、異なる日付を識別するために使用します。

この問題は、時間のみを含む新しい列を作成することで解決できる可能性があります (例: 22:01format="%H:%M")。ただし、as.POSIXct()関数を使用すると、日付と時刻の両方を含む変数が取得されます。日付部分をエスケープできないようです。

4

1 に答える 1

4

データ ファイルは各グループの時間に対して異なる日を持っているため、すべてのグループを同じプロットに表示する 1 つの方法は、新しい変数を作成して、すべてのグループに同じ「ダミー」の日付を与えますが、収集された実際の時間を使用することです。

experiment <- data.frame(Time, Value, Group)  #creates a data frame
experiment$hms <- as.POSIXct(paste("2015-01-01", substr(experiment$Time, 12, 19)))  # pastes dummy date 2015-01-01 onto the HMS of Time

すべて同じ日付の時間が得られたので、簡単にプロットできます。

experiment$Grouping <- as.factor(experiment$Group)  # gglot needed Group to be a factor, to give the lines color according to Group
ggplot(experiment, aes(x=hms, y=Value, color=Grouping)) + geom_line(size=2)

以下は結果の画像です(必要に応じて基本プロットを変更/修正できます): ここに画像の説明を入力

于 2015-10-06T20:23:05.607 に答える