簡體   English   中英

使用ggplot2的帶有錯誤欄的堆積條形圖

[英]Stacked barplot with errorbars using ggplot2

我正在嘗試使用ggplot2創建帶有錯誤欄*的堆積條形圖,類似於下圖: 情節我試圖復制

我使用了以下代碼:

df <- data.frame(substrate = gl(6, 2, 12, labels=letters[1:6]),
                 depth = gl(2, 1, 12, labels=c("surf", "deep")),
                 mean = 10 * runif(12),
                 err = runif(12))
p <- ggplot(df, aes(x=depth, y=mean, fill=substrate)) + geom_bar(stat="identity") + coord_flip()
p + geom_errorbar(aes(x=depth, ymin=mean-err, ymax=mean+err))

這給了我這個: 在此輸入圖像描述

它看起來像是在平均值位置的誤差條的中心而不是平均值+“先前”基板的平均值。 也就是說,誤差條a的中心應該是a的平均值,誤差條b的中心應該是平均值a +平均值b等。

有誰知道如何在ggplot2中實現這一點?

*我意識到有很好的理論原因不能以這種方式顯示數據 - 但我們並不總是自己決定如何呈現我們的數據!

我想你可以用geom_segment做到這geom_segment ,但是你的例子只有一個方向的條形圖,這看起來更聰明。 所以我和geom_segment一起攻擊了一些東西:

df <- data.frame(substrate = gl(6, 2, 12, labels=letters[1:6]),
                 depth = gl(2, 1, 12, labels=c("surf", "deep")),
                 mean = 10 * runif(12),
                 err = runif(12))
df <- ddply(df,.(depth),transform,ystart = cumsum(mean),yend = cumsum(mean) + err)
p <- ggplot(df, aes(x=depth, y=mean, fill=substrate)) + 
        geom_bar(stat="identity")
p + geom_segment(aes(xend = depth,y = ystart,yend = yend)) + 
        geom_point(aes(x = depth,y = yend),shape = "|",show_guide = FALSE) +
        coord_flip()

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM