2014-11-11 3 views
2

Я создаю несколько гистограмм в гистограмме в ggplot 2 и задаюсь вопросом, как я могу условно скрыть определенные метки данных, если они меньше определенного процента от общего числа, например, 10%.Условно скрывать метки данных в графе ggplot2

Как вы можете видеть из графика, полученного из приведенного ниже кода, некоторые из этикеток становятся слишком большими относительно толщины бара. Поэтому я хотел бы скрыть те, которые меньше, чем определенный порог. Как я могу изменить код ggplot ниже, чтобы достичь этого? Благодаря!

library(ggplot2) 
library(dplyr) 

#Creating the dataset 
my.data <- data.frame(dates = c("1/1/2014", "1/1/2014", "1/1/2014", "1/1/2014", "1/1/2014", "2/1/2014", "2/1/2014", "2/1/2014", "2/1/2014", "2/1/2014"), 
         fruits=c("apple", "orange", "pear", "berries", "watermelon", "apple", "orange", "pear", "berries", "watermelon"), 
         count=c(20, 30, 40, 2, 2, 30, 40, 50, 1, 1)) 

#Creating a positon for the data labels 
my.data <- 
     my.data %>% 
     group_by(dates) %>% 
     mutate(pos=cumsum(count)-0.5*count) 

#Plotting the data 
ggplot(data=my.data, aes(x=dates, y=count, fill=fruits))+  
     geom_bar(stat="identity")+ 
     geom_text(aes(y=pos, label=count), size=4) 

ответ

1

Вы можете подмножить данные в слое geom_text. Например

ggplot(data=my.data, aes(x=dates, y=count, fill=fruits))+  
     geom_bar(stat="identity")+ 
     geom_text(data=subset(my.data, count>10), aes(y=pos, label=count), size=4) 

enter image description here

Смежные вопросы