簡體   English   中英

我在 ggplot2 中帶有錯誤欄的條形圖是錯誤的

[英]My barplot with errorbars in ggplot2 is wrong

最小的可重現示例在這里:

library(ggplot2)

vals <- c(10, 12, 13, 20, 21, 28)
err <- c(0.85, 1.2, 0.9, 1.35, 2.2, 0.98)
cat <- c(rep("A",3),rep("B",3))

df <- data.frame(vals, err, cat)
df$cat<- as.factor(df$cat)

ggplot(df, aes(x=cat, y=vals, fill=vals)) +
  geom_bar(stat='identity', position='dodge') +
  geom_errorbar(aes(ymin=vals-err, ymax=vals+err), width=.1)

此代碼返回 plot,如下所示: 什么是

但是我希望每只cat有兩列彼此相鄰。 更接近於此:

應該

我在這里做錯了什么?

如果每一行都是單獨的觀察,則需要明確說明。 做一個索引變量,把它變成一個因子,然后把它放在 x 軸上。

如果obs跨類別重復(例如,如果 A 和 B 的obs編號為 1、2 和 3),則使用facet_wrap(~ cat)cat進行刻面。


vals <- c(10, 12, 13, 20, 21, 28)
err <- c(0.85, 1.2, 0.9, 1.35, 2.2, 0.98)
cat <- c(rep("A",3),rep("B",3))

df <- data.frame(vals, err, cat)
df$cat<- as.factor(df$cat)
df$obs <- factor(1:nrow(df))

ggplot(df, aes(x=obs, y=vals, fill=cat)) +
  geom_col(position='dodge') +
  geom_errorbar(aes(ymin=vals-err, ymax=vals+err))

輸入結果

暫無
暫無

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

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