2013-10-16 30 views
1

我希望有人能夠以正確的方式指導我。我正在嘗試生產約100個直方圖,因此我的問題的解決方案必須易於重現。我有一個範圍從0.0000(零值)到1.0000的上限值的向量。有0.0000個值的顯着數量,其餘的值更分散。ggplot2 - 直方圖的不同分檔大小

我想現在創建一個具有不同容器大小的直方圖。我想對所有的零個值的垃圾桶,然後塊大小應該是0.005

下面是一些可重複的代碼,說明我的實際數據:

per_value <- rbeta(200, 1, 1, ncp = 0.3) 
percent_change <- c(0,0,0,0,0, rbeta(195, 1, 1, ncp = 0.1)) 

valua_chg <- data.frame(cbind(per_value, percent_change)) 

ggplot(valua_chg, aes(x=percent_change)) + 
    stat_bin(breaks=c(0, seq(0.001,1.0, by=0.005))) 

這裏被創建的圖片代碼:

enter image description here

的問題是,對於零倉倉的尺寸極小,不一樣大小的其他段。有誰知道如何解決這一問題。

謝謝!

+1

我不明白。你說你想要一個無限小的箱子作爲零值,然後你說問題是這個箱子太小了......? – joran

+1

據我所知,你想顯示與其他酒吧寬度相同的零計數箱。 爲此,您需要考慮爲x尺度編寫自己的轉換。看看這篇文章: http://blog.ggplot2.org/post/25938265813/defining-a-new-transformation-for-ggplot2-scales – user2840286

回答

2

做到這一點最快,最簡單的方法是設置最低的中斷爲-0.004,以便包含零的bin具有0.005的相同寬度。 bin不會居中在零位,但是如果您的數據綁定在0和1之間,則應該是OK:

ggplot(valua_chg, aes(x=percent_change)) + 
    stat_bin(breaks=c(-0.004, seq(0.001,1.0, by=0.005))) 
+0

我會明天工作創建因子箱,看看是否修復問題。如果不是,我將使用你的解決方案創建一個非常小的零庫來顯示零計數。 – user1738753