Reputation: 79
I can't seem to re-generate plots (using ggplot2
) that I previously generated using the code below. I now get the error message "No stat called StatHline"
. Is there a replacement?
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")
This is what I want the plot to look like:
Upvotes: 3
Views: 1621
Reputation: 27398
I think this boils down to major changes in ggplot2
.
Here are a couple of options. The first uses points with shape='-'
for the horizontal bars. The second uses geom_errorbar
as you had used previously, but via 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=mean, colour='royalblue3', geom='point', shape='-', size=30) +
# line connecting means
stat_summary(fun=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=mean, aes(ymin=..y.., ymax=..y..),
geom='errorbar', width=0.3, color='royalblue3', size=1.25) +
# line connecting means
stat_summary(fun=mean, colour='royalblue3', geom='line', aes(group=1), lty=2)
Upvotes: 6