Data-Visualization
“把手”圖的替代圖形
在我的研究領域,顯示數據的一種流行方式是使用條形圖與“把手”的組合。例如,
根據作者的不同,“把手”在標準誤差和標準偏差之間交替。通常,每個“條”的樣本量相當小——大約六個。
這些圖似乎在生物科學中特別流行——例如,參見BMC Biology 第 3 卷的前幾篇論文。
那麼你將如何呈現這些數據呢?
為什麼我不喜歡這些情節
我個人不喜歡這些情節。
- 當樣本量很小時,為什麼不只顯示單個數據點。
- 顯示的是 sd 還是 se?沒有人同意使用哪個。
- 為什麼要使用酒吧。數據不會(通常)從 0 開始,但圖表上的第一次通過表明它確實如此。
- 這些圖表沒有給出關於數據范圍或樣本大小的概念。
R 腳本
這是我用來生成繪圖的 R 代碼。這樣您就可以(如果您願意)使用相同的數據。
#Generate the data set.seed(1) names = c("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3") prevs = c(38, 37, 31, 31, 29, 26, 40, 32, 39) n=6; se = numeric(length(prevs)) for(i in 1:length(prevs)) se[i] = sd(rnorm(n, prevs, 15))/n #Basic plot par(fin=c(6,6), pin=c(6,6), mai=c(0.8,1.0,0.0,0.125), cex.axis=0.8) barplot(prevs,space=c(0,0,0,3,0,0, 3,0,0), names.arg=NULL, horiz=FALSE, axes=FALSE, ylab="Percent", col=c(2,3,4), width=5, ylim=range(0,50)) #Add in the CIs xx = c(2.5, 7.5, 12.5, 32.5, 37.5, 42.5, 62.5, 67.5, 72.5) for (i in 1:length(prevs)) { lines(rep(xx[i], 2), c(prevs[i], prevs[i]+se[i])) lines(c(xx[i]+1/2, xx[i]-1/2), rep(prevs[i]+se[i], 2)) } #Add the axis axis(2, tick=TRUE, xaxp=c(0, 50, 5)) axis(1, at=xx+0.1, labels=names, font=1, tck=0, tcl=0, las=1, padj=0, col=0, cex=0.1)
感謝您的所有回答。為了完整起見,我認為我應該包括我通常做的事情。我傾向於結合給出的建議:點、箱線圖(當 n 很大時)和 se(或 sd)範圍。
(被版主刪除,因為託管圖像的網站似乎不再正常工作。)
從點圖中可以清楚地看出,數據比“手柄條”圖所建議的要分散得多。其實A3裡面有一個負值!
我已將此答案設為 CW,因此我不會獲得代表