2016-02-10 42 views
3

我想绘制使用ggplot()的直方图,但是我无法处理极端值。我希望他们能够在一个垃圾箱内(例如,称为“500以上”)联合起来。ggplot直方图的极端值

我已经尝试了scale_x_continuous(breaks = seq(0,500, by = 50))函数,但它只是从x轴上删除标签(附后)如何处理这个问题的任何想法? enter image description here

+1

能否请您发布的数据,让我们可以使用它? –

+0

您最好的办法可能是先将数据装箱,然后制作一个barplot而不是直方图。 – Heroka

+0

结果将不再是直方图。 – Roland

回答

3

我会建议在绘图前计算计数。使用功能cut()您可以根据需要设置中断,并使用geom_bar()绘制这些数据。 geom_bar()中的设置宽度= 1将删除条形之间的空间。

library(dplyr) 
library(ggplot2movies) 
data("movies") 
df<-movies %>% mutate(length.class=cut(length,breaks=c(seq(0,500,50),10000))) %>% 
     group_by(length.class) %>% summarise(count=n()) 

ggplot(df,aes(length.class,count))+geom_bar(stat="identity",width=1) 

enter image description here

+0

这是有效的,并在同一时间非常清晰地呈现!非常感谢,感谢您的帮助! – michal111