Reputation: 824
I'm trying to fix the error bars so that they are actually readable on my graph. The only one that are causing problems are on the 2013 data. How do I go about doing this? I saw some posts about jitter or dodge but I am not sure how to apply that to fix my issue.
Here is the code I am attempting to alter:
YearlyDensity <- read.table(header=T, text='
Station Year mean se
M-25 2013 8944.444 3636.871
M-25 2008 4212 2371
M-25 2004 963 291
M-45 2013 8495.169 2111.072
M-45 2008 13023 1347
M-45 2004 8748 1740
X-2 2013 12345.411 1166.905
')
library(ggplot2)
ggplot(YearlyDensity, aes(x=Year, y=mean, colour=Station,group=Station)) +
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), colour="black", width=.2) +
geom_line(size=.8) +
geom_point(size=4, shape=18) +
coord_cartesian(ylim = c(0, 16000)) +
scale_y_continuous(breaks=seq(0,16000,2000)) +
xlab("Sampling Year") +
ylab("Mean Density") +
labs(fill="") +
theme_bw() +
theme(legend.justification=c(1,0), legend.position=c(1,0))
Upvotes: 10
Views: 14188
Reputation: 67828
You to set the dodge
width
to the same value for all geom
s, i.e. add position = position_dodge(width = <the-desired-width>)
to each of them. See What is the width argument in position_dodge? for details.
# set desired dodge width
pd <- position_dodge(width = 0.4)
ggplot(YearlyDensity, aes(x = Year, y = mean, colour = Station, group = Station)) +
geom_errorbar(aes(ymin = mean-se, ymax = mean+se),
colour = "black", width = 0.2, position = pd) +
geom_line(size = .8, position = pd) +
geom_point(size = 4, shape = 18, position = pd) +
coord_cartesian(ylim = c(0, 16000)) +
scale_y_continuous(breaks = seq(0, 16000, 2000)) +
xlab("Sampling Year") +
ylab("Mean Density") +
labs(fill = "") +
theme_bw() +
theme(legend.justification = c(1, 0), legend.position = c(1, 0))
Upvotes: 8