【发布时间】:2020-05-14 17:21:51
【问题描述】:
我正在尝试创建一个堆积条形图,因为我的一些值非常小,而不是在每个条形内放置标签。我想知道是否可以将每个值放在具有最高值的条形顶部并堆叠在其下方。然后文本颜色将与条形颜色相应。我在geom_text() 中尝试了y=val+1,但是,这也会增加最高值。这不是我想要的。
x<-c(1,2,3,4,5)
y1<-c(0.5,4,2,9,16)
y2<-c(.25,3,10,0.02,7)
y3<-c(2,2,16,0.023,4.5)
df1<-data.frame(x=x,v1=y1,stringsAsFactors=FALSE)
df2<-data.frame(x=x,v2=y2,stringsAsFactors=FALSE)
df3<-data.frame(x=x,v3=y3,stringsAsFactors=FALSE)
pClass<-left_join(df1,df2,by="x")
pClass<-left_join(pClass,df3,by="x")
pClass<-pClass%>%pivot_longer(-x,names_to="var",values_to="val")%>%mutate(val=as.numeric(val))
ggplot(pClass,aes(x=x,y=val,fill=var))+geom_bar(position="stack",stat="identity")+
geom_text(aes(x=x,label = prettyNum(as.numeric(val),digits = 3),y=val),size = 3,fontface="bold")
【问题讨论】:
标签: r ggplot2 geom-bar stacked-chart geom-text