簡體   English   中英

將 stat_summary 與 ggplot 一起使用時更改條寬

[英]Changing bar width when using stat_summary with ggplot

我在stat_summary中使用stat_summary來繪制條形圖。 我想改變條形的寬度。 通常這是使用width選項完成的。 使用預先匯總的數據和stat="identity它按預期工作:

data <- data.frame(group=rep(c("a","b"), 20), y=rnorm(40,100,50))
se <- function(x, na.rm=T) sd(x, na.rm=na.rm)/sqrt(length(x))
data2 <- cast(data, group ~ ., value="y", c(mean, se))
ggplot(data2, aes(group, mean, ymin=mean-1.96*se, ymax=mean+1.96*se)) +
 geom_bar(stat="identity", width=0.5) + geom_errorbar(width=0, size=2)

但是,在使用stat_summary原始數據的同一圖中,條形不會改變寬度,而誤差條會:

ggplot(data, aes(group, y)) + stat_summary(fun.y="mean", geom="bar", width=0.5) +
 stat_summary(fun.data="mean_cl_normal", geom="errorbar", width=0, size=2)

即使使用stat_summary有沒有辦法改變條形寬度?

由於第一個示例有效,這個問題顯然已經有了解決方法,但是,我真的很想知道是否有任何方法可以使用stat_summary來做到這stat_summary ,因為我經常使用它並且通常更方便。

謝謝!

這是已知問題444235 的主題

當前的解決方案是在aes內傳遞width ——這違背了ggplot (映射與設置)的原則,但至少它有效......

請注意,如果您想要沒有錯誤欄的錯誤欄,您可以使用linerange

ggplot(data, aes(group, y)) + 
 stat_summary(fun.y="mean", geom="bar", aes(width=0.5)) +
  stat_summary(fun.data="mean_cl_normal", geom="linerange",  size=2)

在此處輸入圖片說明

此問題已得到解決。 width現在也適用於stat_summarygeom="errorbar"

暫無
暫無

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

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