Это показывает что-то подобное для меня, но ваше предположение неверно:
plotvar=c(rep(NA,20),rep(0,20),1:10)
nclr <- 8
plotclr <- brewer.pal(nclr,"BuPu")
class <- classIntervals(plotvar, nclr, style="quantile")
colcode <- findColours(class, plotclr)
plot(1:10)
legend(5,5, legend=names(attr(colcode, "table")),
fill=attr(colcode, "palette"), cex=0.6, bty="n")
, который создает легенду с большим количеством значений [0,0), которые все действительно равны нулю (не пропуская значения - проверьте, удалив NA из вектора, ничего не изменилось).
Это потому, что у меня 8 разрывов квантиля, но столько нулей, что они заполняют более одного квантиля.
Если это ваша проблема, то вам нужно подумать о другом способе сопоставления значений цветам, и это не имеет ничего общего с пропущенными значениями!
Вот некоторый похожий код, который показывает, как добавить дополнительный элемент к легенде, чтобы указать, что происходит с элементами с цветами NA:
set.seed(310366)
x=1:30
y=30*runif(30)
plotvar=sample(5+10*c(rep(NA,20),runif(10)))
nclr <- 8
plotclr <- brewer.pal(nclr,"Spectral")
class <- classIntervals(plotvar, nclr, style="quantile")
colcode <- findColours(class, plotclr)
plot(x,y,col="black",pch=21,bg=colcode)
legend(5,10, legend=c("Missing",names(attr(colcode, "table"))),
fill=c("white",attr(colcode, "palette")), cex=0.6, bty="n")
Я думаю, вы должны сделать это вручную. Это не большая проблема.