2012-10-05 31 views
-1

可能重複:
how to define fill colours in ggplot histogram?直方圖數據幀離散化數據

我想要繪製從數據幀單位長度類魚(直方圖)計數其在總結該信息binned格式(data.frame(...,length = length,counts = N))。我是ggplot2的新用戶,但似乎它可能是一個不錯的選擇。我可以從data.frame對象創建這個直方圖嗎?

對不起,如此短暫,在這裏是一塊DF的的結構中,

'data.frame': 416 obs. of 3 variables: 
$ specie: Factor w/ 1 level "speciesA": 1 1 1 1 1 1 1 1 1 1 ... 
$ length: num 34.5 35 35.5 36 36.5 37 37.5 38 38.5 39 ... 
$ Counts: num 2 0 0 0 1 0 1 1 0 1 ... 

在這種情況下,漁民趕上2個個人34.5釐米大,1 36.5,等等...謝謝 你非常喜歡你的答案

+0

請提供您的數據的幾行? – Ali

+0

歡迎來到SO,如果你給我們一個[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example),你的問題會更好理解和使用'dput(your.data)' –

+0

來測試你的數據樣本,但是我不能給你一個合理的解決方案,而沒有提示你的數據結構。設置xmin和xmax的值。查看ggplot2軟件包的幫助頁面:?geom_histogram – Sathish

回答

0

由於你沒有提供你的數據樣本,我已經根據你的描述創建了數據。

魚的長度從34.5到49.5(任意單位:a.u.)。魚類的最小長度爲34.5和魚類的最大長度爲49.5

x <- 34.5:49.5 

具有特定長度的魚數量從0開始和結束於2

y <- 0:2 

創建具有長度計數的樣本的x

Counts <- sample(y, length(x), replace=TRUE) 

創建包含長度和計數的數據幀1。注意:DF1的結構滿足按你的描述

df1 <- data.frame(length=x, Counts = Counts) 

既然你已經計算具有特定長度的魚的數量的數據結構,你必須將其轉換回原來的格式,也就是說,如果有2種魚34.5(au),它應該被轉換回兩個34.5s。

df2 <- data.frame(length = rep(df1$length, df1$Counts)) 

使用ggplot函數繪製數據。注意有很多方法可以做同樣的情節。你可以嘗試geom_histogram來獲得同樣的情節。

require("ggplot2") 
ggplot(data=df2, aes(x=length, xmin=34.5, xmax=49.5)) + stat_bin(binwidth=1) 

檢查這個site更多信息

希望這有助於!