Легенда не отображается на карте, созданной с помощью R - PullRequest
0 голосов
/ 12 декабря 2018

Я создал карту с кодом ниже, и моя легенда не появляется.Я пытался изменить поля и координаты легенды, но они все еще не отображаются.Кто-нибудь может помочь?Пример данных на Github связан здесь: набор данных .В идеале мне бы хотелось изображение с легендой , но я создаю его без легенды .Я использовал похожие коды для генерации обоих изображений.

library(rgdal); library(dplyr);library(readr);
library(maptools); library(plotrix); 
library(raster);library(sp)
library(raster);library(sp)
library(grDevices);library(mapproj);
library(lubridate); library(grid)
library(gridExtra);library(spdep); library(rgeos)



shape0<- shapefile("Ethiopia/admin_levels/gadm36_ETH_0")
shape1<- shapefile("Ethiopia/admin_levels/gadm36_ETH_1")
shape2<- shapefile("Ethiopia/admin_levels/gadm36_ETH_2")


png(paste0("Ethiopia/figures/NGA_HT_Estimates_",
           format(today(), '%Y%m%d'),
           ".png"),
    height = 6 * 1.15, width = 6 * 1.15, res = 400, unit = "in")
par(mar = c(5,0,7,0))
plotvar = dat$BMI
brks = seq(0, 0.8, length = 11)
nclr <- length(brks) - 1

plotclr <- rev(brewer.pal(nclr, "RdYlBu"))
colornum <- findInterval(plotvar, brks, all.inside = T)
colcode <- plotclr[colornum]

plot(shape2, border = "black", lwd = 0.5, col = colcode)
plot(shape1, border = "black", lwd = 2, add = T)
plot(shape0, border = "black", lwd = 3, add = T)

color.legend(4.5, 1, 6, 3.5, rect.col = plotclr, gradient="y",
             legend = paste0(seq(0, 0.8, length = 4) * 100, "%"),
             align = "rb", cex = 1.4)

title(main = list("Prevalence of Overweight (<=25kg/m2) among\n Women 18 years and Older in Ethiopian Zones", 
       sub =  "Raw Estimates", cex.main = 1.4,   font.main= 4, col.main= "black", 
  cex.sub = 0.75, font.sub = 3, col.sub = "black")

dev.off()

1 Ответ

0 голосов
/ 12 декабря 2018

Распространенная причина, по которой легенда не отображается, заключается в том, что график обрезается до области графика.Это можно изменить с помощью par(xpd = TRUE), что позволяет размещать легенду за пределами области сюжета.

...