我正在尝试绘制ggplot2
并尝试将标签放置在具有置信区域的平均轨迹上的正确位置。由于我无法共享我的数据,我创建了一个可重现的示例:
set.seed(456)
library(ggplot2)
library(directlabels)
time<-1:25
df2<-data.frame(time,value=runif(2500),group=as.factor(c(rep('Alpha',1250),rep('Beta',1250))))
ggplot(df2, aes(x=time, y=value,group=group,colour=group))+
stat_summary(geom="ribbon", fun.data=mean_cl_normal,fun.args=list(conf.int=0.95), fill="grey")+
stat_summary(geom="line", fun=mean,size=2,show.legend=TRUE)+
stat_summary(geom="point", fun=mean, color="red",size=3)+
theme(legend.position='none',axis.title=element_text(size=40),
axis.text=element_text(size=30),panel.background = element_blank(),axis.line =
element_line(colour = 'black'))+
geom_dl(aes(label = group),method=list(dl.combine('first.qp','last.qp')),color='black')
如您所见,标签完全错误。我试图将标签放在第一个平均点旁边和/或最后一个平均点旁边。使用我的数据,结果更糟:两个标签都在较低的轨迹下并且都重叠。我还得到以下信息warning
:
┌ Warning: RCall.jl: Warning in regularize.values(x, y, ties, missing(ties)) :
│ collapsing to unique 'x' values
│ Warning in regularize.values(x, y, ties, missing(ties)) :
│ collapsing to unique 'x' values
│ Warning in regularize.values(x, y, ties, missing(ties)) :
│ collapsing to unique 'x' values
│ Warning in regularize.values(x, y, ties, missing(ties)) :
│ collapsing to unique 'x' values
如何解决我的问题并将标签放在每个轨迹的第一个/最后一个平均值旁边?我试图更改method
选项但没有成功......由于绘制的点是手段,因此方法.points
不起作用。此外,如何控制标签的大小?
我尝试了另一个ggplot2
代码:
ggplot(df2, aes(x=time, y=value,group=group,colour=group))+
stat_summary(geom="ribbon", fun.data=mean_cl_normal,
fun.args=list(conf.int=0.95), fill="grey")+
stat_summary(geom="line", fun=mean,size=2,show.legend=TRUE)+
stat_summary(geom="point", fun=mean, color="red",size=3)+
theme(legend.position = 'none',axis.title=element_text(size=40),
axis.text=element_text(size=30),panel.background =
element_blank(),axis.line = element_line(colour =
'black'))+
stat_summary(aes(label=group), fun=mean, geom="text", size=8)
我得到以下情节:
如果我只能保留第一个和/或最后一个标签,我想我已经接近最后一个情节了。