Ich erzeuge die folgenden zwei Linien mit ggplot und möchte einen bestimmten Bereich zwischen den beiden Linien schattieren, dh wo y = x² ist größer als y = 2x, wo 2 < = x < = 3 .Schattenbereich zwischen zwei Linien mit ggplot
# 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))
das Ergebnis ist die folgende, die nur den Bereich unter der Linie y = 2x beschattet, und dies unabhängig von der x-Wert - warum?
http://www.r-bloggers.com/shading-between-two-lines-ggplot/ – CMichael
Mögliche Betrogene: http://stackoverflow.com/q/20260749/903061 – Gregor