Shaded polygons in R with linear constraints

I have 6 linear limitations. I know how to find a solution to this problem both manually and through r . I am looking for an easy way to get an illustration for a possible region.

I tried ggplot2 to do this without any success.

Here are the limitations: x1 >= 0, x2 >= 0, x2 <= 10 and x2 <= 12 - 2/5 * x1 , x2 <= 18 - x1 , x2 <= 18 - x1

 require(ggplot2) # x2 <= 12 - 2/5*x1 fun1 = function(x1){ x2 = 12 - 2/5*x1 return(x2) } # x2 <= 18 - x1 fun2 = function(x1){ x2 = 18 - x1 return(x2) } # x2 = 44 - 3*x1 fun3 = function(x1){ x2 = 44 - 3*x1 return(x2) } x1 = seq(0,20) mydf = data.frame(x1, fun1(x1), fun2(x1),fun3(x1),rep(10,length(x1))) names(mydf) = c('x1','y1','y2','y3','y4') mydf$y5 = rep(0,length(x1)) p0 = ggplot(mydf, aes(x = x1)) + coord_cartesian(ylim=c(0,10),xlim = c(0,20))+ geom_line(aes(y = y1), colour = 'blue') + geom_line(aes(y = y2), colour = 'green') + geom_line(aes(y = y3), colour = 'red') + geom_line(aes(y = y4), colour = 'purple') + geom_line(aes(y = y5), colour = 'black') p0 + geom_area(aes(y = pmin(y1,y2,y3,y4,y5)), fill = 'gray60') 

Thank you for your help!

EDIT : removing the last y5 from the pmin function does the trick:

  p0 + geom_area(aes(y = pmin(y1,y2,y3,y4,y5)), fill = 'gray60') 
+4
source share
1 answer

My problem was in the last variable y5 . Removing the pmin function did the trick.

 p0 = ggplot(mydf, aes(x = x1)) + coord_cartesian(ylim=c(0,10),xlim = c(0,20))+ geom_line(aes(y = y1), colour = 'blue') + geom_line(aes(y = y2), colour = 'green') + geom_line(aes(y = y3), colour = 'red') + geom_line(aes(y = y4), colour = 'purple') + geom_line(aes(y = y5), colour = 'black') p0 + geom_area(aes(y = pmin(y1,y2,y3,y4)), fill = 'gray60') 
0
source

All Articles