2016-02-10 76 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