经纬度点的世界地图

时间:2019-02-19 05:31:45

标签: r ggplot2 latitude-longitude ggmap

我正在尝试绘制特定湖区(纬度和经度)的世界地图,并根据两个变量(颜色的模型和总计的大小)进一步区分这些点,目的是最终获得一种世界地图上的气泡图。

这就是我的数据(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 :(得分:1)

在没有您的数据的情况下,有些事情仍然困扰着我。在您的geom_point图层中,我认为您的尺寸和颜色应在aes()内,如下所示:

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

这些可能不是唯一的问题,通常从ggplot层的基础知识开始,看看是否可行,然后看一下颜色和大小通常是个好主意。这可以帮助确定问题所在。因此,在您的情况下,请尝试先将其与纬度和经度一起绘制。

我还建议您检查数据中是否没有NA,并且数据帧向量是否适合要插入的每个位置(因子,字符,数字等)。 )。这些问题中的每一个都浪费了我大量的时间……

祝你好运!

答案 1 :(得分:0)

感谢您的提示。我发现其中一个变量是一个因素,但是即使更正了该问题,问题仍然存在。所以我重新启动了R几次,它神奇地起作用了