Можно ли автоматически удалить ненужные пробелы/поля в графиках choroplethr ggplot2?

Есть много вопросов, связанных с удалением пробелов из стандартных графиков ggplot2, например графики. Тем не менее, в настоящее время нет никаких вопросов относительно графиков ggplot2 на основе choroplethr. По другим нестандартным сюжетам вопросов тоже не нашел, поэтому и спрашиваю.

Я сопоставляю данные для аргентинских административных единиц первого уровня (провинций). Сначала загрузите библиотеки и примеры данных:

library(ggplot2); library(grid); library(choroplethr); library(choroplethrAdmin1)
d_argentina_admin1 = 
structure(list(country = c("argentina", "argentina", "argentina", 
"argentina", "argentina", "argentina", "argentina", "argentina", 
"argentina", "argentina", "argentina", "argentina", "argentina", 
"argentina", "argentina", "argentina", "argentina", "argentina", 
"argentina", "argentina", "argentina", "argentina", "argentina", 
"argentina"), region = c("ciudad autonoma de buenos aires", "provincia de buenos aires", 
"provincia de catamarca", "provincia de cordoba", "provincia de corrientes", 
"provincia de entre rios", "provincia de formosa", "provincia de jujuy", 
"provincia de la pampa", "provincia de la rioja", "provincia de mendoza", 
"provincia de misiones", "provincia de rio negro", "provincia de salta", 
"provincia de san juan", "provincia de san luis", "provincia de santa cruz", 
"provincia de santa fe", "provincia de santiago del estero", 
"provincia de tierra del fuego, antartida e islas del atlantico sur", 
"provincia de tucuman", "provincia del chaco", "provincia del chubut", 
"provincia del neuquen"), region_short = c("ciudad autonoma de buenos aires", 
"buenos aires", "catamarca", "cordoba", "corrientes", "entre rios", 
"formosa", "jujuy", "la pampa", "la rioja", "mendoza", "misiones", 
"rio negro", "salta", "san juan", "san luis", "santa cruz", "santa fe", 
"santiago del estero", "tierra del fuego, antartida e islas del atlantico sur", 
"tucuman", "chaco", "chubut", "neuquen"), CA = c(1.68523081351625, 
0.12549520300237, -1.27397814948309, 0.455533000767044, -0.852755464371651, 
0.311078868096833, -1.15435688398305, -0.731142526555172, 1.10745473359446, 
-1.17376627430079, 0.410907812201062, -0.559784594595219, 0.752534373004307, 
-0.10532704793929, -0.534917391396886, 0.565419267663713, 0.550492884041435, 
0.775972211209032, -1.35483468421443, 0.243461376532096, -0.456931964639015, 
-1.21548156415082, -0.184277139940435, 2.61397314194124), S = c(2.28055681849635, 
0.886904398431874, -0.0336697376305896, 0.795396060124547, -1.10055353978519, 
0.215269561474404, -1.91800141017787, -0.85287131899651, 0.602260636644222, 
0.107582135770333, 0.509706470343261, -1.34372858962124, 0.266348607390528, 
-0.813557146573346, 0.178982808194874, 0.387580775513218, 0.836845928452549, 
0.633109400616697, -1.19041212503163, 1.10688354366868, -0.180773498720898, 
-1.91244609716818, 0.0289904264255843, 0.50959589215834), European_pct = c(NA, 
79L, 55L, 70L, 56L, 70L, 58L, 45L, 72L, 55L, 68L, 65L, 63L, 45L, 
60L, 67L, 63L, 76L, 55L, 63L, 63L, 58L, 63L, 63L), HDI2011 = c(0.889, 
0.838, 0.836, 0.862, 0.828, 0.839, 0.806, 0.829, 0.864, 0.834, 
0.852, 0.817, 0.851, 0.832, 0.825, 0.828, 0.873, 0.846, 0.807, 
0.88, 0.843, 0.807, 0.848, 0.855), HDI1996 = c(0.854, 0.769, 
0.766, 0.776, 0.766, 0.763, 0.739, 0.743, 0.782, 0.76, 0.782, 
0.747, 0.77699999999999, 0.756, 0.767, 0.762, 0.791, 0.777, 0.745, 
0.804, 0.77, 0.765, 0.777, 0.784), Latitude = c(34.6, 34.92, 
28.47, 31.42, 27.47, 31.74, 26.19, 24.19, 36.62, 29.41, 32.89, 
27.36, 40.81, 24.78, 31.54, 33.3, 51.62, 31.61, 27.78, 54.8, 
26.81, 27.45, 43.3, 38.95), Mean.C = c(18.1, 15.8, 20.5, 17.63, 
21.1, 18, 22.1, 18.7, 15.5, 20.1, 16.7, 21.3, 14.2, 16.5, 17.9, 
17.2, 7.6, 18.5, 20.4, 5.7, 19.3, 21, 13.6, 14.5), Knoema_name = c("Ciudad Autónoma de Buenos Aires", 
"Buenos Aires", "Catamarca", "Córdoba", "Corrientes", "Entre Ríos", 
"Formosa", "Jujuy", "La Pampa", "La Rioja", "Mendoza", "Misiones", 
"Río Negro", "Salta", "San Juan", "San Luis", "Santa Cruz", "Santa Fe", 
"Santiago del Estero", "Tierra del Fuego", "Tucumán", "Chaco", 
"Chubut", "Neuquén"), long = c(-58.4087168822226, -60.4520279200146, 
-67.0033502110092, -63.6371590458406, -57.5922837730968, -59.1929261299057, 
-59.9002069633236, -65.6846836561529, -66.0781718361702, -67.8240418774711, 
-68.9698150834006, -54.6502325454809, -67.7111354201418, -65.5153259609209, 
-68.9777591351386, -66.3059831227416, -69.6838127357142, -60.6945670435963, 
-64.3580773677863, -65.8132823586689, -65.4186581044413, -59.9636744025983, 
-67.6203412779368, -70.5435477557748), lat = c(-34.6301055975446, 
-37.2961720341364, -27.4440629216902, -31.7921585910377, -28.7753987205406, 
-32.1078433856807, -25.095300376526, -23.4789231673989, -38.0265724152956, 
-29.3771688411262, -34.257024768382, -26.8538125248083, -40.047744111783, 
-24.0730809995991, -30.6947781801545, -33.0413870848178, -49.2068318102752, 
-31.675607181458, -28.0818062780313, -54.5269245027309, -27.015093754783, 
-25.8734309245111, -43.9885104650552, -38.5793873300344), value = c(18.1, 
15.8, 20.5, 17.63, 21.1, 18, 22.1, 18.7, 15.5, 20.1, 16.7, 21.3, 
14.2, 16.5, 17.9, 17.2, 7.6, 18.5, 20.4, 5.7, 19.3, 21, 13.6, 
14.5)), .Names = c("country", "region", "region_short", "CA", 
"S", "European_pct", "HDI2011", "HDI1996", "Latitude", "Mean.C", 
"Knoema_name", "long", "lat", "value"), row.names = c(NA, -24L
), class = "data.frame")

Мы можем построить данные о температуре, используя следующий код:

d_argentina_admin1$value = d_argentina_admin1$Mean.C
admin1_choropleth(country.name = "argentina", 
                  df           = d_argentina_admin1, 
                  #title        = "2010 Japan Population Estimates", 
                  legend       = "Mean temperature (C)", 
                  num_colors   = 1) +
  geom_text(data = d_argentina_admin1, aes(long, lat, label = Knoema_name, group = NULL), size = 2.5)
ggplot("map_temp.png")

Первая строка связана с тем, что эта функция всегда хочет использовать столбец value, поэтому нужно перемещать данные в этот столбец вместо указания столбца. Сохраняем его с помощью ggsave и выглядит это так:

введите здесь описание изображения

Как и ожидалось, средние температуры выше на севере.

Видно (с помощью наведения мыши), что вокруг карты много пробелов, которые хотелось бы удалить. Его можно удалить вручную, изменив параметры ggsave:

ggsave("figures/map_temp2.png", width = 5, height = 7)

введите здесь описание изображения

Но для этого должен быть автоматический метод. Я попытался добавить поля графика 0, как было предложено в других вопросах, но это не дало никакого эффекта.

theme(plot.margin = unit(c(0,0,0,0), "cm"))

Как автоматически удалить пробелы/поля из графика ggplot2 такого типа?


person CoderGuy123    schedule 15.09.2016    source источник