Неверное количество групп в Choropleth Использование sf, ggplot и cut_interval () - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь контролировать количество категорий в хороплете, используя sf, ggplot2 и cut_interval() в пределах ggplot2.Иногда это работает, но с некоторыми наборами данных количество категорий выходит на 1. Ниже мой код и входной набор данных (7 КБ) здесь: ggplot-test-04.geojson

library(sf)
library(ggplot2)

lga.sf <-  st_read("ggplot-test-04.geojson")

ggplot() +
  geom_sf(data = lga.sf,
          aes(fill = cut_interval(value,5))) +
  scale_fill_brewer(palette = "RdYlBu", 
                    name = "Legend" )

Я пытаюсь получить 5 групп, но результат имеет 4: 4 groups

В некоторых наборах данных этот код работает нормально.Иногда я могу обойти эту проблему, выбрав сказать n = 6 в cut_interval(), чтобы получить 5 групп.Тем не менее, я нахожу, что часто я не могу контролировать количество групп в хороплете, что очень важно для меня.Пока я не могу сказать, есть ли у моих данных проблема, мой код или есть программная ошибка.

1 Ответ

0 голосов
/ 22 мая 2018

В этом случае cut_interval() работает правильно, но в одном из разрезов нет нулевых наблюдений, поэтому ggplot() игнорирует его.

(Это средний интервал - вы действительно можете увидеть разрыв в покрытии между вторым и третьим элементами легенды.)

Вы можете убедиться в этом, посмотрев на cut_interval() с помощью table():

table(cut_interval(lga.sf$value, 5))

[1.44,1.61] (1.61,1.78] (1.78,1.95] (1.95,2.11] (2.11,2.28] 
          3           7           0           1           1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...