2016-08-08 4 views

Antwort

5

Nun, ich glaube nicht, dass ich das gesamte Region zeichnen konnte, aber wie wäre es damit: Die Ungleichheit zu y > 2*(x-1)/(x-2) äquivalent ist, also lassen Sie uns den kritischen y-Wert für jedes x finden und dann die Region zeichnen, wenn die Ungleichheit erfüllt ist:

library(ggplot2) 

x = seq(-10,14,0.001) 
y = 2*(x-1)/(x-2) 
dat = data.frame(x,y) 

ggplot(dat) + 
    geom_ribbon(aes(x, ymin=y, ymax=ifelse(x>2, Inf,-Inf)), fill="blue") + 
    theme_bw() + 
    coord_cartesian(ylim=range(-10,14), xlim=c(-10,14),expand=FALSE) + 
    labs(y="y") + 
    geom_hline(yintercept=2, colour="red", size=0.5, alpha=0.5) 

die horizontale rote Linie zeigt den kritischen Wert, y nähert, wenn der Absolutwert von x (der 2) wird groß.

enter image description here

0

Probieren mit ggplot2, dplyr. Einige Daten:

df<-data.frame(x=runif(1:100),y=runif(1:100)) 

Hinzufügen der Einschränkung:

df1<-df%>%mutate(constraint=ifelse((x*y/(x+y-1))>2,"yes","no")) 

Einschränkungen:

which(df1$constraint=="yes")->k 

die Handlung:

ggplot()+geom_area(data=df1[k,],aes(x,y,fill=constraint),alpha=0.5)+geom_point(data=df1[k,],aes(x,y)) 

enter image description here

+0

Aber das Ergebnis Sinn nicht wirklich machen - einige Werte von (x, y) in beiden Farben schattiert, was auf beide treffen und nicht die Einschränkung zu erfüllen. –

+1

yup ... einverstanden. Die Antwort von @ eipi10 ist korrekt. Der geom_area gibt den Bereich an, der durch die Einschränkung definiert ist == "yes". Ich habe die Änderungen vorgenommen. Auf jeden Fall würde ich geom_ribbon antwort bevorzugen. – thisisrg