问题描述
我想在我的 geom_col ggplot 中添加误差线。误差条确实添加到我的图中,但误差条不正确。有人可以帮我弄清楚如何调整我的代码吗?我认为 y 值是错误的。它可能不应该是长度,而是我的数据框中“数字”的实际值。 如果这是一个非常简单的问题,我深表歉意,我是 R 的新手。 提前致谢。
number_of_sprout <- data.frame(
Condition = c("RBP7 KO","RBP7 KO","Ctrl","Ctrl"),Number = c(8,11,17,18,13,16,4,9,12,15,8,7,6,10,19,14,7),timepoint = c(24,24,48,48)
)
sph1 <- ggplot(data = number_of_sprout,aes(x = factor(timepoint,ordered = TRUE),y=Number,fill = Condition)) +
stat_summary(fun = mean,geom = "col",position = position_dodge()) +
scale_fill_manual(values = c("slategray4","thistle3")) +
geom_point(position = position_dodge(width = 0.9)) +
labs(x = "Hours",y = "Number of sprouts") +
theme_classic() +
ggtitle("Spheroids - Donor 37") +
theme_bw() +
theme(text=element_text(family="Times New Roman",face="bold")) +
theme(aspect.ratio = 1.5/1)
se5 <- function(y) sd(y)/length(y) # to calculate standard error in the mean
sph1+stat_summary(geom="errorbar",position=position_dodge(width=0.9),fun.data=function(y)c(ymin=mean(y)-se5(y),ymax=mean(y)+se5(y)),width=0.2)
解决方法
我假设您只是对平均值的标准误使用了错误的公式。我已经将它保存在我的个人实用程序包中,所以我不需要查看它 - 在某些时候从 this thread 厚颜无耻地偷走了。
另一个注意事项,也许检查http://data-to-viz.com/caveat/error_bar.html 更一般的警告为什么误差线可能不理想(如果你绘制整个数据,一般来说不是很有必要)
# replace your function
se5 <- function(x,na.rm=FALSE) {
if (na.rm) x <- na.omit(x)
sqrt(var(x)/length(x))
} # to calculate standard error in the mean
sph1+stat_summary(geom="errorbar",position=position_dodge(width=0.9),fun.data=function(y)c(ymin=mean(y)-se5(y),ymax=mean(y)+se5(y)),width=0.2)
作为不同的答案 - 不同的主题。您是否考虑过对配对数据进行不同形式的可视化?我会将其显示为关系散点图,第一个度量在 x 轴上,第二个在 y 轴上。
如您所见,通过这种方式,两个测量值之间的关系更加清晰可见,而且与条形图相比,您还可以更好地看到差异(或本例中的相似性)。
library(tidyverse)
number_of_sprout <- data.frame(
Condition = c("RBP7 KO","RBP7 KO","Ctrl","Ctrl"),Number = c(8,11,17,18,13,16,4,9,12,15,8,7,6,10,19,14,7),timepoint = c(24,24,48,48)
)
number_of_sprout %>%
pivot_wider(names_from = timepoint,values_from = Number,names_prefix = "t",values_fn = list) %>%
unnest(c(t24,t48)) %>%
ggplot(aes(t24,t48)) +
geom_abline(intercept = 0,slope = 1,color = "grey") +
geom_point(aes(color = Condition)) +
scale_color_brewer(palette = "Set1",direction = -1) +
coord_equal(xlim = c(0,NA),ylim = c(0,NA)) +
cowplot::theme_cowplot()
由 reprex package (v2.0.0) 于 2021 年 4 月 29 日创建