I plot the observed values per place with points and errorbars, which works as expected.
Problems:
I try also to plot the expected value per place as a short horizontal line, centered in the same way as the points. I use segments for this, the lines appear, however they are not centered and I cannot figure out how to control them.
I would like to plot the reference value which is the same per year for all the places but changes from year to year. I get the line with geom_line, but it is oblique and I would like to have steps (or two lines with an interrupt). With geom_steps I get the vertical shift per place, not per year. I tried the
geom_hline
as well however with defining a data.frame withhline.data<-data.frame(hy=chunk$Reference.Value, hx=chunk$Year)
a get two parallel lines along the whole plot.
Could you please show me what I am doing wrong? Thank you very much in advance!
The code with my attempts:
library(data.table)
library(ggplot2)
chunk<-fread("
Year;Places;Code;Name;Reference.Value;Value;Expected.Value;CI
2010;Place5;A12;Indicator;0.079;0.087;0.082;0.00286
2010;Place1;A12;Indicator;0.079;0.075;0.086;0.02317
2010;Place2;A12;Indicator;0.079;0.059;0.069;0.01955
2010;Place3;A12;Indicator;0.079;0.065;0.067;0.02712
2010;Place4;A12;Indicator;0.079;0.091;0.101;0.03211
2011;Place5;A12;Indicator;0.077;0.062;0.058;0.00260
2011;Place1;A12;Indicator;0.077;0.078;0.069;0.01736
2011;Place2;A12;Indicator;0.077;0.029;0.037;0.02821
2011;Place3;A12;Indicator;0.077;0.062;0.059;0.02166
2011;Place4;A12;Indicator;0.077;0.110;0.099;0.06452")
chunk[,`:=` (Year = as.factor(Year),
Places = as.factor(Places),
Code = as.factor(Code),
Name = as.factor(Name)
)]
limits <- aes(ymax = Value+CI, ymin=Value-CI)
dodge <- position_dodge(width=0.9)
p <- ggplot(chunk, aes(colour=Places, fill=Places, y=Value, x=Year))
p + geom_linerange(limits, position=dodge) +
geom_point(position=dodge, size = 5) +
geom_segment(position=dodge,
aes(group=Places,
y=Expected.Value, yend=Expected.Value,
x=as.numeric(Year)-0.01, xend=as.numeric(Year)+0.01)
) +
geom_line(position=dodge, aes(group=Places, y=Reference.Value,x=Year), color="black")
# geom_step(position=dodge, direction="vh", aes(group=Places,y=Reference.Value,x=Year), color="black")