如何更改基于图例值的 ggplot2 文本标签

How to alter ggplot2 text labels that are based off of legend values

我正在尝试创建一个堆叠条形图,它使用 'MaskID' 中的值来创建文本标签。 'MaskID' 中的每个唯一值都有自己的颜色,我希望这些值的名称在条形图上具有相应的颜色。

p <- ggplot(df, aes(x, y))
p <- p + xlab("xlabel")
p <- p + ylab("ylabel")
p <- p + ggtitle("ylabel vs xlabel")
p <- p + geom_bar(stat="identity", aes(fill=MaskID))
p <- p + geom_text(aes(label=MaskID))

如果栏值为 0,我也不希望名称显示。'MaskID' 名称全部聚集在一起,栏值为 0。有人知道如何自定义吗?我对 ggplot2(和 R)还是很陌生。

试试这个

p + geom_text(aes(label= ifelse(y != 0, as.character(MaskID), '')))