0

R を使用して日付を ggplot グラフ (グラフ データの基になる) に追加することは可能ですか? 私は 1 週間にわたって最も毎日のデータを選択するコードを持っており、これはその後プロットされます。データフレームの例 (以前の回答から) を以下に示します。

set.seed(1234)
df <- data.frame(Date=seq(as.POSIXct("05:00", format="%H:%M"), 
                          as.POSIXct("23:00", format="%H:%M"), by="hours"))
df$Counts <- sample(19)
df <- df[-c(4,7,17,18),]

# generate the groups automatically and plot
idx <- c(1, diff(df$Date))
i2 <- c(1,which(idx != 1), nrow(df)+1)
df$grp <- rep(1:length(diff(i2)), diff(i2))
g <- ggplot(df, aes(x=Date, y=Counts)) + geom_line(aes(group = grp)) + 
  geom_point()
g

次のコードを使用して、R に私のデータがどの曜日であるかを理解させることができることを知っています。

d <- as.Date("19/02/2013","%d/%m/%Y") 
format(d, "%A, %b %d, %Y")

しかし、これを機能させるには、明らかに日付を手動で入力する必要があります。

R にデータフレームを読み取らせ、データの基になっている曜日 (1 日のみ) を計算させ、これを凡例としてグラフの右上隅に追加することは可能ですか? 形式に曜日と日付の両方を含めることが理想的です (例: 2013 年 2 月 19 日、火曜日)。

編集

グラフに日付をテキストとして追加したい。これに geom_text を使用できますか? これは現時点では機能していませんが、これまでのところ私は持っています:

g + geom_text(aes(x=as.POSIXct("18:00:00", format="%H:%M:%S"), y=1500), label=date_format("%A, %b %d, %Y")", size=2)

誰が私が間違っているのか教えてもらえますか?

4

1 に答える 1

2

Arun (コメントを参照) で提案されているように、入力データをフォーマットするか、現在のプロットにフォーマットを追加できます。

 library(scales)
 g+ scale_x_datetime(labels = date_format("%A, %b %d, %Y"))

編集

日付インジケーターを追加してグラフに注釈を付けたいと思います

単一の日付を追加するため、使用できますannotate。多くの日付が重複する geom_text を使用するよりも優れています。例えば:

 label <- unique(format(as.Date(df$Date, "%d/%m/%Y"),
                                "%A, %b %d, %Y"))
 g+ annotate("text", x = mean(df$Date), y = 20, 
       label = label,size=20, col='red')

ここに画像の説明を入力

于 2013-02-19T12:45:10.847 に答える