R 尝试在地图上绘制点时出错

R 尝试在地图上绘制点时出错,r,ggplot2,mapping,R,Ggplot2,Mapping,我试图在英国地图上绘制点,点的大小根据数据的不同而变化 这是我的数据文件的一部分(这是我第一次做一个可复制的示例-我在文件的头部使用了dput,但请告诉我是否有一种方法可以更清楚或更好地完成此操作) 加载数据文件后,我会执行以下操作: UK <- map_data(map = "world", region = "UK") ggplot(data = UK, aes(x = long, y = lat, group = group)) + geom_polygon() + geo

我试图在英国地图上绘制点,点的大小根据数据的不同而变化

这是我的数据文件的一部分(这是我第一次做一个可复制的示例-我在文件的头部使用了dput,但请告诉我是否有一种方法可以更清楚或更好地完成此操作)

加载数据文件后,我会执行以下操作:

UK <- map_data(map = "world", region = "UK")

ggplot(data = UK, aes(x = long, y = lat, group = group)) +
  geom_polygon() +
  geom_point(data = unidata, aes(x = Long, y = Lat, size = Response, col = "red")) +
  coord_map()

UK将描述要使用哪些数据帧和列的参数移动到
geom_polygon()
元素时,它会起作用。运行以下代码,可以获得所需的绘图:

ggplot() +
  geom_polygon(data = UK, aes(x = long, y = lat, group = group)) +
  geom_point(data = unidata, aes(x = Long, y = Lat, size = Response), col = "red") +
  coord_map()

我还将
col=“red”
参数移到了
aes()
括号之外,因此它不会出现在您的图例中。

谢谢,这太完美了!出于兴趣,你知道为什么会这样吗?是不是因为一旦添加了geom_点(来自不同的数据集),geom_多边形就需要更多的定义,因为它不太清楚它应该做什么?我正在阅读Hadley Wickham(他写了ggplot2)对这个问题的一些评论,他的解决方案是在两个数据帧中为x和y变量取一个共同的名称。在此基础上,我得出了这个解决方案。您在
ggplot()
函数中定义的映射似乎适用于所有可视元素,并且由于unidata dataframe没有组列,因此出现了错误。这是有道理的,而且非常有用,因为我很确定我过去也有过类似的问题。谢谢
ggplot() +
  geom_polygon(data = UK, aes(x = long, y = lat, group = group)) +
  geom_point(data = unidata, aes(x = Long, y = Lat, size = Response), col = "red") +
  coord_map()