0 votes
1 view
in R Programming by (5.2k points)

If you specify axis limits in ggplot the outlying points are removed. This is fine for points, but you might want to plot lines that intersect with the specified range, but ggplot's range or xlim/ylim methods removes these. Is there another way to specify the plot axis range without removing outlying data?

e.g.

require(ggplot2)

d = data.frame(x=c(1,4,7,2,9,7), y=c(2,5,4,10,5,3), grp=c('a','a','b','b','c','c'))

ggplot(d, aes(x, y, group=grp)) + geom_line()

ggplot(d, aes(x, y, group=grp)) + geom_line() + scale_y_continuous(limits=c(0,7))

ggplot(d, aes(x, y, group=grp)) + geom_line() + ylim(0,7)

1 Answer

0 votes
by (25.3k points)

To limit the axis without removing the data outside the limits, you need to set the limits inside the cartesian coordinate system instead of scale or setting ylim().

In your case:

require(ggplot2)

d = data.frame(x=c(1,4,7,2,9,7), y=c(2,5,4,10,5,3), grp=c('a','a','b','b','c','c'))

ggplot(d, aes(x, y, group=grp)) + 

  geom_line() + 

  coord_cartesian(ylim=c(3, 6))

Output:

image

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...