2012-07-12 1 views
10

ggplot2の新機能ですが、すばらしいことでしたが、私は1つのことに問題があります。ggplot2の面取りされたプロットにテキストをX軸の日付で追加する

私は1年に渡るいくつかの時系列をプロットしました。 X軸は、クラスDateの変数から派生しています。私は独立したy軸を持つ列に7つの時系列を持つようにプロットを描きました。この図の全体的なポイントは、各ファセットの相関を上位ファセットと比較することです。

最後に、各ファセットの右上隅のプロットにテキスト(各ファセットと最初のファセットの間の推定ピアソン相関)を追加します。

geom_text()はテキストの各ビットにx座標とy座標が必要なので、これは非常に困難であることがわかります。 X軸が日付で、Y軸がファセットごとに異なる場合の座標を指定するにはどうすればよいですか?あなたは、私がこれまで持っているものに再現することができますので、ここではいくつかのサンプルデータと私が持っているコードは、これまでのところです:

library(ggplot2) 

date <- rep(as.Date(1:365,origin='2011-1-1'),7) 
location <- factor(rep(1:7,365)) 
product <- rep(letters[1:7], each=365) 
value <- c(sample(1:10, size=365, replace=T),sample(1:3, size=365, replace=T), 
      sample(10:100, size=365, replace=T), sample(1:50, size=365, replace=T), 
      sample(1:20, size=365, replace=T),sample(50:100, size=365, replace=T), 
      sample(1:100, size=365, replace=T)) 
dat<-data.frame(date,location,product,value) 

qplot(date, value, data=dat, geom="line", color=location, group=location, 
     main='Time Series Comparison', xlab='Month (2011)',ylab='Value') + 
     facet_grid(product ~ ., scale = "free_y") 
+0

! – rnorberg

答えて

9

これはneatestコードではありませんが、私はそれが多少あなたが後にしているもののようだと思う:

編集してくれてありがとう@Andrie
library(plyr) 

corr_dat<-ddply(dat, .(product), summarise, value=value) 
corr.df<-unstack(corr_dat, value~product) 

corr_plot <- data.frame(date=max(dat$date), 
         label=paste0("rho==",round(cor(corr.df)[,1], 2)), 
         ddply(dat, .(product), summarise, 
          value=(min(value)+max(value))/2)) 

ggplot(dat, aes(x=date, y=value, color=location, group=location)) + 
    geom_line()+ 
    facet_grid(product ~ ., scale = "free_y")+ 
    geom_text(data=corr_plot, aes(x=date, y=value, label=label), 
      colour="black", inherit.aes=FALSE, parse=TRUE) 

Plot with expressions

+0

絶対完璧です!ありがとう、トン。好奇心から、 'show.guide = FALSE'は何をしますか? – rnorberg

+1

'show.guide = FALSE'は、凡例に現れるテキストを禁止します。私は色を黒に設定する必要がなくなりました。私はそれを削除すると思います。 –

関連する問題