我在ggplot中有一个堆积的条形图,每个条形的中心都带有geom_text()标签。我想在小条上隐藏标签,以免图形看起来过于拥挤。我可以使用下面的代码来做到这一点,但是如下面的链接图片所示,它们使标签的位置混乱(它们不再居中)。
有没有一种方法可以隐藏条形图标签,而不会弄乱其余标签的位置?
ggplot(data=outcome,
aes(x = category, y=percent,fill = outcome)) +
geom_bar(stat='identity') +
coord_flip() +
geom_text(data=outcome %>% filter(percent>=0.1),aes(label = percent), size = 3,position = position_stack(vjust = 0.5),
check_overlap=TRUE)
答案 0 :(得分:1)
您可以使用ifelse()
语句。每当我不想要标签时,在这里我都留空白,但是NA
也可以。
library(ggplot2)
df = data.frame(
x = factor(c(1, 1, 2, 2)),
y = c(1, 3, 2, 1),
grp = c("a", "b", "a", "b")
)
ggplot(data = df, aes(x, y, fill = grp)) +
geom_col() +
coord_flip() +
geom_text(aes(label = ifelse(y > 1, y, "")),
position = position_stack(vjust = 0.5),
size = 3)
由reprex package(v0.2.0)于2018-08-07创建。