Не могу сделать так, чтобы gg-plot показывал правильную легенду в R - PullRequest
0 голосов
/ 03 апреля 2019

Я вычисляю проблему центрального хранилища, и мне нужна помощь для визуализации результата.

У меня есть набор данных с координатами для локальных складов, которые я затем сделал кластеризацией в kmeans (), которая предоставляет координаты для центрального хранилища.складские помещения.

Всего 9 кластеров, поэтому k = 9.И в общей сложности 552 локальных склада.

Я хотел бы показать график с разными цветами в зависимости от того, к какому кластеру (центральному складу) принадлежит каждый локальный склад.И покажите индекс кластера в легенде.

Чтобы установить цвета, я использую палитру () и добавляю цвет, чтобы получить в общей сложности 9 разных цветов.

Использование кода в #1 # Я получаю желаемый результат, но без легенды.Используя код # 2 #, я получаю легенду, но в неправильных цветах и ​​не в правильном «формате» легенды.

cc <- palette()
palette(c(cc,"purple"))
palette()

    #1#
get_map("Mexico", zoom = 5) %>% ggmap()+
      geom_point(data = Datafor_k_9, aes(x = `CW-lon`, y = `CW-lat`), col=Datafor_k_9$BelongToK, size = 3, shape=8)+
      geom_point(data = Datafor_k_9, aes(x = `LW-lon`, y= `LW-lat`), col=Datafor_k_9$BelongToK, size=1)

Result of #1#

p <- ggmap(get_googlemap("Mexico",zoom = 5,
                         maptype ='terrain',
                         color = 'color'))
p+geom_point(data = Datafor_k_9, aes(x = `CW-lon`, y = `CW-lat`,col=Datafor_k_9$BelongToK), size = 4,shape=8)+
  geom_point(data = Datafor_k_9, aes(x = `LW-lon`, y= `LW-lat`, col=Datafor_k_9$BelongToK), size=1)
theme(legend.position = "right")

Result for #2#

Что я делаю не так?

Данные объединяются в один df с именем "Datafor_k_9".Координаты для локального склада называются "LW-lon" / "LW-lat", а для центрального склада "CW-lon" / "CW-lat".И они ДОЛЖНЫ быть связаны вместе с их общим "BelongToK" Snipp of data-frame

Ссылка на .csv данных: https://drive.google.com/open?id=1JsyEVqknEfcuakSXydFAq2OQ1eHYznSX

...