在R中的ggplot条形图中向异常值添加ID

时间:2018-04-22 17:45:49

标签: r ggplot2 bar-chart outliers

我创建了一个堆积的条形图

ggplot(data %>% count(x, y),
        aes(x, n, fill = factor(y))) + 
geom_bar(stat="identity")+
theme_light()+
theme(plot.title = element_text(hjust=0.5))

enter image description here

有(可能的)异常值在50,54和60.如何将他们的ID添加到图表中?

2 个答案:

答案 0 :(得分:1)

如果您发布数据,我会使用它修改此答案。但基本上你想要

df %>%
    count(x, y) %>%
    ggplot(aes(x = x, y = n, fill = y)) +
    geom_col() +
    geom_text(aes(label = x), data = . %>% filter(x >= thresh), vjust = 0, nudge_y = 0.1)

其中thresh是你设定的某个阈值 - 可能是一个有意义的任意截止点,或者可能是x的平均值的3个标准差,或者其他。您可以将它存储在外部变量中,您可以在数据框中创建一个布尔列,或者您可以在geom_text内内联计算它 - 真的取决于您。 vjust = 0, nudge_y = 0.1将标签放在与您的异常值相对应的条形图上方。

答案 1 :(得分:0)

也许是geom_text(data = mydata%>%filter(just.the.outliers)? 另见:RE: Alignment of numbers on the individual bars with ggplot2