首页 > 解决方案 > 带有纬度和经度点的世界地图图

问题描述

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

这就是我的数据(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

在此处输入图像描述

然后我尝试通过添加点

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

标签: rggplot2latitude-longitudeggmap

解决方案


在没有您的数据的情况下,有一些事情对我来说很重要。在您的 geom_point 层中,我认为您的大小和颜色应该在 aes() 内,如下所示:

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

这些可能不是唯一的问题,通常最好从 ggplot 层的基础开始,看看是否可行,然后对颜色和大小有所了解。这可以帮助确定问题所在。所以在你的情况下,试着看看它是否会先用 Lat 和 Long 绘制。

我还建议检查您的数据中没有任何 NA,并且数据框向量是否适合您尝试将其插入的每个位置(因子、字符、数字等)。这些问题中的每一个都在某一时刻浪费了我大量的时间......

祝你好运!


推荐阅读