2014-11-04 157 views
0

對不起,新手R的問題...R + ggplot2,同一曲線圖中的多個直方圖,每個直方圖歸一化爲單位面積?

我有一個data.frame包含單個變量的測量。這些測量將根據所測量的物體是A型還是B型來進行不同的分配;也就是說,您可以想象我的列名是:測量,鍵入標籤(A或B)。我想分別繪製A和B的測量直方圖,並將兩個直方圖放在同一個圖中,每個直方圖歸一化爲單位面積(這是因爲我預計A和B的比例會有很大差異)。單位面積上,我的意思是A和B各有單位面積,不是A + B有單位面積。基本上,我想要geom_density之類的東西,但我不想爲每個分配平滑分配;我想要直方圖欄。不交錯,但繪製一個在另一個之上。沒有堆疊,但知道如何做到這一點也很有趣。 (這個圖的目的是探討分佈形狀的差異,這些差異可能表明A和B之間存在數量上的差異,可以用來區分它們。)就是這樣。兩個或更多的直方圖 - 不平滑的密度圖 - 在同一個圖中,每個直方圖歸一化爲單位面積。謝謝!

+0

您將希望更清楚地瞭解您的問題代碼示例,甚至是繪製的圖片。無論如何,我認爲這[鏈接](http://www.cookbook-r.com/Graphs/Plotting_distributions_(ggplot2)/)應該回答你的問題。 – JasonAizkalns 2014-11-04 17:28:46

回答

2

像這樣的東西?

# generate example 
set.seed(1) 
df <- data.frame(Type=c(rep("A",1000),rep("B",4000)), 
       Value=c(rnorm(1000,mean=25,sd=10),rchisq(4000,15))) 
# you start here... 
library(ggplot2) 
ggplot(df, aes(x=Value))+ 
    geom_histogram(aes(y=..density..,fill=Type),color="grey80")+ 
    facet_grid(Type~.) 

注意,有4次B類型的一樣多的樣品。

您還可以在調用facet_grid(...)時使用scales="free_y"來設置y軸比例爲浮動。

+0

謝謝,這幾乎正是我所需要的;如果我將兩個直方圖在alpha = 0.something的同一個y軸上繪製(即沒有多個facet),我就可以得到我想要的。很有幫助! (有趣的是,我注意到如果任何類型是NA,他們也會得到一個直方圖,但沒有圖例輸入。如果您不知道被測量的東西是A型還是B型,可能會發生這種情況。 – 2014-11-05 10:34:59