2013-07-16 28 views
2

與GGPLOT2數據點的數目箱圖我有我繪製一系列箱形圖的具有柱狀數據集,最相似的設置在本例中: Boxplot of table using ggplot2底紋(或α)由R中

require(reshape2) 
ggplot(data = melt(dd), aes(x=variable, y=value)) + geom_boxplot(aes(fill=variable)) 

但是,在我的情況下,每個箱圖表示不同數量的數據點。例如,列A可能有8000個數據點,列B可能有6000,列C可能有2500,列D可能有800.

爲了有助於溝通,我想我可以使用alpha的填充顏色以反映數據點的數量。盒子越黑,在計算boxplot代表的統計數據中使用的數據點越多。

在geom_histogram的ggplot2幫助文件中,它們使用aes(fill = .. count ..)來遮蓋與bin中計數數量對應的bin。

m <- ggplot(movies, aes(x=rating))  
m + geom_histogram(aes(fill=..count..)) 

(希望包括這裏的例子直方圖的畫面,但不能因爲我沒有足夠的信譽分...對不起)

我嘗試使用這個與我ggplot geom_boxplot,但它似乎並不知道..count ..部分。 這是我行正在生成箱線圖:

ggplot(meltedData, aes(x=variable, y=value)) + geom_boxplot(aes(fill=variable), outlier.size = 1) + ylim(-4,3) 

任何人有任何指針?我知道我可以將「alpha」屬性添加到geom_boxplot,但是如何根據boxplot中的數據點個別將它應用於每個boxplot?

在此先感謝。

+0

請您提供一個[重複的例子(http://stackoverflow.com/questions/5963269/如何做一個偉大的再現性的例子)你想要繪製的列? –

+0

我不太瞭解整個'..count ..'系統,但我認爲它可以和直方圖一起使用,因爲'stat =「bin」'參數。您可能只需要將「count」添加到數據本身。 –

回答

6

stat_boxplot不計算計數。只要做到這一點的ggplot2外:

library(plyr) 
DF <- ddply(mtcars, .(cyl), transform, myalpha = length(cyl)) 

library(ggplot2) 
ggplot(DF, aes(factor(cyl), mpg)) + 
    geom_boxplot(aes(alpha = myalpha), fill = "blue") 

enter image description here

0

data.table選項:

dd <- data.table(dd) 
dd[,Count:=.N,by=variable] 
+0

至少使用'.N' ... – Roland

+0

當然。 「至少」是什麼意思? –

+0

我只是沒有看到需要列出所有可能性,每次都需要在應答中使用split-apply-combine。我們真的需要一個很好的FAQ來提供所有可能性我在這裏選擇了'plyr',因爲我已經在那裏了。 – Roland