用R中的abline对可行区域进行着色

时间:2014-03-11 22:36:14

标签: r plot region

我有直线作为约束,我试图遮蔽可行区域。

我用abline绘制了我的线条,但是我不能在多边形中加阴影。 这就是我到目前为止所做的。

我是R的新手。

plot(c(0, 2), c(0, 2), type='n')

abline(-1/4, 6)
abline(1/2,7)
abline(2,-8)
abline(1,-3)

2 个答案:

答案 0 :(得分:5)

所以这是一种不需要计算角落的方法:

plot(c(0, .5), c(0, 2), type='n')
abline(-1/4, 6, lty=2)
abline(1/2,7, lty=2)
abline(2,-8, lty=2)
abline(1,-3, lty=2)

conditions <- function(x,y) {
  c1 <- (y > -1/4 + 6*x)
  c2 <- (y <  1/2 + 7*x)
  c3 <- (y <    2 - 8*x)
  c4 <- (y >    1 - 3*x)
  return(c1 & c2 & c3 & c4)
}

x <- seq(0,0.5,length=1000)
y <- seq(0,2,length=1000)
z <- expand.grid(x=x,y=y)
z <- z[conditions(z$x,z$y),]
points(z, col="red")

使用ggplot

同样的事情
library(ggplot2)
ggplot(z, aes(x,y))+geom_point(colour="red", alpha=.5)+
  geom_abline(intercept=-1/4,slope=6,  linetype=2)+
  geom_abline(intercept=1/2, slope=7,  linetype=2)+
  geom_abline(intercept=2,   slope=-8, linetype=2)+
  geom_abline(intercept=1,   slope=-3, linetype=2)+
  xlim(0,0.5)+ylim(0,2)

答案 1 :(得分:4)

使用polygon绘制多边形并对其进行着色。例如:

plot(c(0, 3), c(0, 3), type = 'n')
x <- c(1, 2, 2, 1) # The x-coordinate of the vertices
y <- c(2, 1, 2, 1) # The y-coordinate of the vertices
polygon(x, y, col = 'grey')

将为蝴蝶结形状的多边形创建并着色灰色。