Участок карты мира с точками широты и долготы - PullRequest
0 голосов
/ 19 февраля 2019

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

Вот так выглядят мои данные (WD) (data.frame)

WD <- read.csv(file.choose(), header = TRUE)
head(WD)

    Country                Lake        Lat       Long Model Total
1       USA         Annie, lake  27.994549 -81.604644    PB     0
2       USA         Annie, lake  27.994549 -81.604644    DD     1
3 Australia   Baroon, reservoir -26.706919 152.870361    PB     0
4 Australia   Baroon, reservoir -26.706919 152.870361    DD     2
5   England Bassenthwaite, lake    54.6525  -3.225833    PB     3
6   England Bassenthwaite, lake    54.6525  -3.225833    DD     0

Я скачал карту мира, используя

library("ggmap")
library(maptools)
library(maps)
mapWorld <- borders("world", colour="gray50", fill="white")

карта без точек в порядке

mp <- ggplot() + mapWorld

enter image description here

затем я пытаюсь добавить точки на

mp <- mp+ geom_point(data=WD, aes(x=Long, y=Lat) ,color=WD$Model,alpha=0.5, size=WD$Total)

но когда я пытаюсь построить mp, появляется следующая ошибка, и я не знаю, как это выяснить

Error: Discrete value supplied to continuous scale

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

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

0 голосов
/ 19 февраля 2019

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

mp + geom_point(data = WD, aes(x = Long, y = Lat, color = Model, size = Total), alpha = 0.5)

Это могут быть не единственные проблемы, и обычно хорошей идеей будет начать с основслой ggplot и посмотрите, сработает ли это, а затем привыкните к цвету и размеру.Это может помочь решить проблему.Так что в вашем случае, просто попробуйте и посмотрите, будет ли он сначала отображаться с широтой и долготой.

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

Удачи!

...