ggplot: Plotting cutout of CDF while maintaining nomalization according to whole data set
ggplot2, r
Solution
You can use `coord_cartesian`:
+ coord_cartesian(xlim = c(3, 10))
In contrast to the limits specified in `scale_x_continuous`, `coord_cartesian` does use the whole dataset.
From `?coord_cartesian`:
Setting limits on the coordinate system will zoom the plot (like you're looking at it with a magnifying glass), and will not change the underlying data like setting limits on a scale will.
The whole code:
ggplot(data = df, aes(x = x, col = series)) +
stat_ecdf(geom = "smooth") +
coord_cartesian(xlim = c(min_x, max_x))
Problem
I have a data frame of the following structure: ``` x series 11.1 "without restraints" 9.8 "without restraints" 7.0 "restraints" ... ``` I want to plot the cumulative distribution function of the data grouped by the series. At general it works fine with the command ``` ggplot(data = df, aes(x = x, col = series)) + stat_ecdf(geom = "smooth") + scale_x_continuous(limits=c(min_x, max_x)) ``` The x values range from 3.7 to around 20. If I set the limits to 3 and 25 the output looks like http://i40.tinypic.com/2crm5xc.jpg But if I set the limits to 3 and 10 the output is http://i42.tinypic.com/24viudg.jpg and the fraction/density is now calculated according to the data set in the range 3 to 10. Is there a way that I plot it with the scale of the whole data set, so that the density is given relative to the complete data set (it should therefore be around 0.13 at x value of 10). Thanks for any help.