I am using ggplot2 to produce a fairly simple plot of a proportion against an integer valued predictor. I am using geom_errorbar to display uncertainty for each point estimate.
e.g.
require(ggplot2)
mydata <- data.frame(my_x = 70:99,
my_y = seq(0.7,0.3,length.out=30),
my_lower = seq(0.6,0.2,length.out=30),
my_upper = seq(0.8,0.4,length.out=30))
ggplot(mydata,aes(x=my_x)) + geom_point(aes(y=my_y)) +
geom_errorbar(aes(ymin=my_lower, ymax=my_upper)) +
xlim(70,80)
For largely aesthetic reasons I am using xlim() to set the x-axis limits (as you do). But this removes the horizontal lines indicating the limits of the error bars at the min and max x-values. I presume this is because ggplot2 is trying to draw a line which lies outside of the plot region (the function call prints some warnings from geom_path about missing values).

I could clean the data of the unwanted rows beforehand or include a subset statement in the ggplot call, but I feel like there is/should be a cleaner solution when zooming into a plot. Any ideas?
Bit hacky but it seems to work:
ggplot(mydata,aes(x=my_x)) + geom_point(aes(y=my_y)) +
geom_errorbar(aes(ymin=my_lower, ymax=my_upper)) +
coord_cartesian(xlim=c(69.5,80.5))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With