我正在尝试在英国地图上绘制点,在该点上,点的大小会根据数据而变化。

这是我的数据文件的一部分(这是我第一次做可重现的示例-我在文件头上使用了dput,但请告诉我是否有办法可以更清楚或更好地做到这一点)。

structure(list(V1 = c("St George's", "Sheffield", "Plymouth",
"Exeter", "King's College London", "East Anglia"),
Sample = c(183L, 139L, 106L, 128L, 152L, 178L),
Total = c(417L, 342L, 350L, 520L, 659L, 875L),
Response = c(43.9, 40.6, 30.3, 24.6, 23.1, 20.3),
Lat = c(51.427194, 53.380941, 50.415735, 50.737137, 51.511486, 52.621921),
Long = c(-0.174503, -1.487947, -4.110571, -3.535147, -0.115997, 1.239176)),
.Names = c("V1", "Sample", "Total", "Response", "Lat", "Long"),
row.names = c(NA, 6L), class = "data.frame")


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

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()


但是,这使我出现以下错误:


eval(expr,envir,enclos)中的错误:找不到对象“组”


英国数据中有一个组,当我在不使用geom_point线的情况下运行此代码时,便获得了英国的标准地图,因此我认为错误在于此行。但是,似乎geom_point不需要组。所以我一定在俯视什么?

最佳答案

当您将描述要使用的数据框和列的参数移动到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()括号之外,因此它不会出现在您的图例中。

关于r - 尝试在 map 上绘制点时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46173465/

10-11 03:25