Как исправить неправильные автоматические c надписи на карте (tmap) - PullRequest
0 голосов
/ 05 мая 2020

У меня есть шейп-файл точек с городами (CitiesPoints) и фрейм данных, который назначает ряд библиотек некоторым из этих городов (df; данные вымышленные). У меня также есть шейп-файл многоугольника для фона.

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

df$CityCode <- as.factor(df$CityCode)
Joint <- CitiesPoints %>% 
  left_join(df, by=c("link"="CityCode"))
tmap_mode("view")
tm_shape(Background) +
tm_borders() +
tm_shape(Joint) + tm_symbols(id = "localidad",
                              size = "BIBLIO",
                              col = "brown1")

Однако, когда я наводил указатель мыши на эти точки, показываемое название города неверно. По-видимому, верхние строки в файле формы (включая строки без библиотек, NA) используются для присвоения меток.

Пример

Правильная метка для этого места должно быть «Рафаэла».

Вы можете скачать файлы, которые я использовал здесь: Файлы

Я был бы очень признателен за помощь!

1 Ответ

0 голосов
/ 06 мая 2020

Я нашел способ исправить это. Я создал новый шейп-файл, содержащий только строки, соответствующие городам, в которых есть библиотеки.

Joint$BIBLIO[is.na(Joint$BIBLIO)] <- 0
JOINT2 = filter(Joint,BIBLIO>0)

Используя этот новый шейп-файл, автоматические c метки теперь отображаются правильно.

...