我似乎无法使用下面的代码重新生成我之前生成的图(使用ggplot2
)。我现在收到错误消息"No stat called StatHline"
。有替代品吗?
data <- data.frame(
CorrectedIntensity=c(0, -0.66, -0.37, 0, -1.04, -0.38, 0, -1.89, -1.50),
Day=c("Day 1", "Day 9", "Day 5", "Day 1", "Day 9", "Day 5", "Day 1", "Day 9", "Day 5"))
library(ggplot2)
plot_data <- ggplot() +
ylim(-2.5, 0.5) +
geom_point(data=data, aes(x=Day, y=CorrectedIntensity), size=7,
colour="royalblue3", alpha=0.30) +
geom_errorbar(data=data, aes(x=Day, y=CorrectedIntensity, ymax=..y.., ymin=..y..),
stat = "hline", yintercept = "mean", width=0.3, colour="royalblue3",
size=1.25) +
stat_summary(data=data, aes(x=Day, y=CorrectedIntensity),
fun.ymax=function(i) mean(i) + sd(i),
fun.ymin=function(i) mean(i) - sd(i),
geom="errorbar", width=0.1, colour="royalblue3")
这就是我想要的情节:
答案 0 :(得分:5)
我认为这归结为major changes in ggplot2
。
以下是几个选项。第一个使用带shape='-'
的点作为水平条。第二个使用之前使用的geom_errorbar
,但是通过stat_summary
。
ggplot(data, aes(x=Day, y=CorrectedIntensity)) +
ylim(-2.5, 0.5) +
# data points
geom_point(size=7, colour="royalblue3", alpha=0.30) +
# +/- standard deviation
stat_summary(fun.data=function(...) mean_sdl(..., mult=1),
geom='errorbar', width=0.1, color='royalblue3') +
# points for mean, using hyphens for point shape
stat_summary(fun.y=mean, colour='royalblue3', geom='point', shape='-', size=30) +
# line connecting means
stat_summary(fun.y=mean, colour='royalblue3', geom='line', aes(group=1), lty=2)
ggplot(data, aes(x=Day, y=CorrectedIntensity)) +
ylim(-2.5, 0.5) +
# data points
geom_point(size=7, colour="royalblue3", alpha=0.30) +
# +/- standard deviation
stat_summary(fun.data=function(...) mean_sdl(..., mult=1),
geom='errorbar', width=0.1, color='royalblue3') +
# lines for means, using geom=errorbar
stat_summary(fun.y=mean, aes(ymin=..y.., ymax=..y..),
geom='errorbar', width=0.3, color='royalblue3', size=1.25) +
# line connecting means
stat_summary(fun.y=mean, colour='royalblue3', geom='line', aes(group=1), lty=2)