Границы geom_map в ggplot2 - пересмотрено

У меня такая же проблема, как у @Mike в этом вопросе. Вопрос в том, как установить цвета контуров регионов на карте.

Предлагаемое решение состоит в том, чтобы добавить geom_polygonдля построения над границами. Это работает, пока вся область нанесена на карту. При попытке ограничиться подобластью полигоны отрисовываются странно (предположительно из-за того, что некоторые вершины отбрасываются). Использование стандартного примера geom_map:

# Create example data
ids <- factor(c("1.1", "2.1", "1.2", "2.2", "1.3", "2.3"))
values <- data.frame(id = ids, value = c(3, 3.1, 3.1, 3.2, 3.15, 3.5))
positions <- data.frame(
  id = rep(ids, each = 4),
  x = c(2, 1, 1.1, 2.2, 1, 0, 0.3, 1.1, 2.2, 1.1, 1.2, 2.5, 1.1, 0.3, 0.5, 1.2, 2.5, 1.2, 1.3, 2.7, 1.2, 0.5, 0.6, 1.3),
  y = c(-0.5, 0, 1, 0.5, 0, 0.5, 1.5, 1, 0.5, 1, 2.1, 1.7, 1, 1.5, 2.2, 2.1, 1.7, 2.1, 3.2, 2.8, 2.1, 2.2, 3.3, 3.2)
)

# Plot data
ggplot(values, aes(fill = value)) + 
    geom_map(aes(map_id = id), map = positions) +
    geom_polygon(aes(x,y,group=id), fill = NA, colour = 'red', data = positions) +
    expand_limits(positions) +
    ylim(0, 3)

Возможным обходным решением является использование цветовой эстетики в geom_map, а затем вручную выбрать цвет контура с помощью scale_color_manualследующим образом:

ggplot(values, aes(fill = value)) + 
    geom_map(aes(map_id = id, colour = 'white'), map = positions) +
    scale_colour_manual(values=c('white')) +
    expand_limits(positions) +
    ylim(0, 3)

Итак, у меня есть два вопроса:

  1. Почему geom_polygonне работает должным образом, когда пределы осей ограничены?
  2. Есть ли более элегантное решение для окрашивания контуров, чем показанное здесь?

Ниже приведены выходные данные графика. Спасибо заранее.

Did not work properly using geom_polygonWorks but is not very elegant

5
задан Community 23 May 2017 в 12:13
поделиться