如何将次要data.frame文本输入到主data.frame绘图中?

如何将次要data.frame文本输入到主data.frame绘图中?,r,ggplot2,R,Ggplot2,我最近绘制了下一个data.frame的堆叠条形图: dput(head(mdfrsubsetN)) structure(list(MESES = structure(1:6, .Label = c("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"), class = "factor"), var

我最近绘制了下一个data.frame的堆叠条形图:

dput(head(mdfrsubsetN))
structure(list(MESES = structure(1:6, .Label = c("Enero", "Febrero", 
"Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", 
"Octubre", "Noviembre", "Diciembre"), class = "factor"), variable = structure(c(1L, 
1L, 1L, 1L, 1L, 1L), .Label = c("19N", "19DURAC", "50N", "50DURAC", 
"PUSHN", "PUSHDURAC", "GRATISN", "GRATISDURAC"), class = "factor"), 
    value = c(NA, NA, 1431, 982, 766, NA)), row.names = c(NA, 
6L), class = "data.frame")
使用此代码:

  ggplot(mdfrsubsetN, aes(MESES, value, fill = variable)) +
  geom_col(position = "fill") +
  scale_y_continuous(labels = percent)
它给了我这个图表

现在我想使用secondary data.frame在相应的条上应用geom_文本。data.frame具有下一个结构

dput(head(mdfrsubsetDURAC))
structure(list(MESES = structure(1:6, .Label = c("Enero", "Febrero", 
"Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", 
"Octubre", "Noviembre", "Diciembre"), class = "factor"), variable = structure(c(2L, 
2L, 2L, 2L, 2L, 2L), .Label = c("19N", "19DURAC", "50N", "50DURAC", 
"PUSHN", "PUSHDURAC", "GRATISN", "GRATISDURAC"), class = "factor"), 
    value = c(NA, NA, 5.04, 5.01, 4.61, NA)), row.names = 13:18, class = "data.frame")
我尝试了下一个代码,但结果不是我想要的

  ggplot(mdfrsubsetN, aes(MESES, value, fill = variable)) +
    geom_col(position = "fill") +
    scale_y_continuous(labels = percent) +
    geom_text(data=mdfrsubsetDURAC, aes(x = MESES, y = value, label = value), position = "fill", vjust="center")+
    theme_classic() +
    scale_fill_discrete(name="PROMOS",
                        breaks=c("19N", "50N","PUSHN","GRATISN"),
                        labels=c("19", "50%", "PUSH", "GRATIS"))
结果如下

我希望注释位于右栏上方,因为现在它们略高于我需要它们的位置。如果我能把它们放在每个吧台的中间,那就太完美了。

试试看

 geom_text(data=mdfrsubsetDURAC, aes(x = MESES, y = value, label = value), hjust = 0.5,  vjust = 0.5,position = position_fill(vjust = 0.5))

谢谢你的回答!但是没有,它仍然没有聚焦。结果如下。你能分享一个完整的假可复制数据集吗。要将溶液作为
head
进行测试,请仅给出
promms 19
确定。这里有两个数据帧。主要区别在于
x
列。1=一月,依此类推<代码>数据提供的数据集与发布的图表不匹配。无论如何,
hjust
vjust
可以分别接受如下位置:
geom_text(data=dataN,aes(x=as.factor(x),y=z,label=z),hjust=rep(0.5,nrow(dataN)),vjust=c(.5,.25,rep(0,nrow(dataN)-2)),position=position\u-fill(vjust=0.5))
。因此,您可以分别传递每个类别的位置