r – 将文本添加到ggplot2中的刻面图上,日期位于X轴上

前端之家收集整理的这篇文章主要介绍了r – 将文本添加到ggplot2中的刻面图上,日期位于X轴上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是ggplot2的新手,这很精彩,但我有一件事情有困难.

我绘制了一系列跨越一年的时间序列. 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,sample(10:100,sample(1:50,sample(1:20,sample(50:100,sample(1:100,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")

解决方法

这不是最新的代码,但我认为它有点像你所追求的:
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,value=(min(value)+max(value))/2))

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

猜你在找的HTML相关文章