Как построить контур с условием
У меня есть две переменные (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)
после запуска этого кода он сгенерирует следующее
Однако мне нужно следующее.
- Если contour1 (темная линия от z) > contour2(серая линия от z1) цвет должен быть красным. (чего я уже достиг).
- Если контур1 <контур2, цвет должен быть синим, а общая область между ними - белым. (белая часть также достигнута и не может покрасить синюю часть (см. рисунок, маленький треугольник должен быть синим)).
- Мне также нужно рассчитать общую красную область и общую синюю область (она также может быть относительно карты)