L'ombre région de l'entre deux lignes avec ggplot

Je prépare le suivant deux lignes avec ggplot et voudrais l'ombre d'une région spécifique entre les deux lignes, c'est à dire où y=x2 est plus grand que y=2x, où 2 <= x <= 3.

# create data #

x<-as.data.frame(c(1,2,3,4))
colnames(x)<-"x"
x$twox<-2*x$x
x$x2<-x$x^2

# Set colours #

blue<-rgb(0.8, 0.8, 1, alpha=0.25)
clear<-rgb(1, 0, 0, alpha=0.0001)

# Define region to fill #

x$fill <- "no fill"
x$fill[(x$x2 > x$twox) & (x$x <= 3 & x$x >= 2)] <- "fill"

# Plot #

ggplot(x, aes(x=x, y=twox)) + 
  geom_line(aes(y = twox)) + 
  geom_line(aes(y = x2)) +
  geom_area(aes(fill=fill)) +
  scale_y_continuous(expand = c(0, 0), limits=c(0,20)) +
  scale_x_continuous(expand = c(0, 0), limits=c(0,5)) + 
  scale_fill_manual(values=c(clear,blue))

Le résultat est celui-ci qui vient de nuances de la région sous la droite y=2x, et ce quelle que soit la valeur x - pourquoi?

L'ombre région de l'entre deux lignes avec ggplot

OriginalL'auteur user2568648 | 2015-02-18