Как построить контур с условием

У меня есть две переменные (z и z1). Мне нужно наложить контуры и найти перекрывающуюся и не перекрывающуюся область между ними.

z<-matrix(c(rep(0.9,8),0.9,0.9,rep(0.8,7),0.9,0.9,0.8,rep(0.7,5),0.8,0.9,
        0.9,0.8,0.7,rep(0.6,3),0.7,0.8,0.9,0.9,0.8,0.7,rep(0.6,3),0.7,0.8,0.9
        ,0.9,0.8,0.7,rep(0.6,3),0.7,0.8,0.9,0.9,0.8,rep(0.7,5),0.8,0.9,
        0.9,rep(0.8,7),0.9),9,9)



z1<-matrix(c(rep(0.9,8),0.9,0.9,rep(0.8,7),0.9,0.9,0.8,rep(0.7,5),0.8,0.9,
            0.9,0.85,0.7,rep(0.6,3),0.65,0.85,0.9,0.9,0.8,0.7,rep(0.6,3),0.7,0.8,0.9
            ,0.9,0.85,0.7,rep(0.6,3),0.65,0.8,0.9,0.9,0.8,rep(0.7,5),0.8,0.9,
            0.9,rep(0.8,7),0.9),9,9)



levels=c(0.7,0.75,0.8,0.9)
for (lev in length(levels):2){
  .filled.contour(seq(1,9,1),seq(1,9,1),z,levels=c(levels[lev-1],levels[lev]),col="red")
  .filled.contour(seq(1,9,1),seq(1,9,1),z1,levels=c(levels[lev-1],levels[lev]),col="white")
}
contour(seq(1,9,1),seq(1,9,1),z,levels=c(0.7,0.75,0.8,0.9),add=T)
contour(seq(1,9,1),seq(1,9,1),add=T,z1,levels=c(0.7,0.75,0.8,0.9),col="grey",drawlabels=F)

после запуска этого кода он сгенерирует следующее

Однако мне нужно следующее.

  1. Если contour1 (темная линия от z) > contour2(серая линия от z1) цвет должен быть красным. (чего я уже достиг).
  2. Если контур1 <контур2, цвет должен быть синим, а общая область между ними - белым. (белая часть также достигнута и не может покрасить синюю часть (см. рисунок, маленький треугольник должен быть синим)).
  3. Мне также нужно рассчитать общую красную область и общую синюю область (она также может быть относительно карты)

0 ответов

Другие вопросы по тегам