2012-04-25 8 views
1

私のグラフの各日の正午に日軸のラベルを追加したいと思います。現在、深夜にラベルを追加していますが、それらのラベルが深夜を示すグリッド線を保持しながら、各日の中間に配置されていればそれをお勧めします。私はhjustを使ってみましたが、結果はあまり良くありませんでした。これを行う方法はありますか?ggplot2グラフの毎日正午に軸が壊れる

library(ggplot2) 
library(scales) 

dat <- data.frame(time_value=seq(as.POSIXct("2011-07-01"), length.out=24*30, by = "hours"), 
        usage_value=sample(1:10, 24*30, replace=TRUE), 
        group=1) 
dat$week <- format(dat$time_value, '%W') 
dat <- subset(dat, week == 27) 

ggplot(dat, aes(x=time_value, y=usage_value, group=1)) + 
    scale_x_datetime(breaks='day', labels=date_format('%A')) + 
    geom_line() 
+0

ないように注意してください、多分 ''休憩の=のdate_breaks(...)でdate_breaksを使用して見てください:次に、あなたのプロットにgeom_vlineを追加

:これはseq.Dateを使用して非常に簡単です'' – Idr

答えて

2

これは片道です。

まず、正午のデータを作成します。

noon <- data.frame(
    x=with(dat, seq(from=min(time_value), to=max(time_value), by="1 day"))+12*60*60 
) 

ggplot(dat, aes(x=time_value, y=usage_value, group=1)) + 
    geom_line() + 
    geom_vline(data=noon, aes(xintercept=x), col="blue") 

enter image description here

+0

ありがとう、私は軸のラベルをその正午の行にある場所にシフトする方法を探しています。 –

+2

@ErikShilts Andrieがbreaks引数に構成した日付シーケンス 'scale_x_datetime(breaks = noon $ x、...)'を渡すだけです。 – joran

+0

美しい、ありがとう。 –

関連する問題