如何将次要data.frame文本输入到主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
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))
。因此,您可以分别传递每个类别的位置