美学必须长度为1或与数据相同(地图绘制)

时间:2019-05-04 17:13:27

标签: r ggplot2

我正在尝试绘制一个世界地图,该地图的点表示使用ggplot2进行的恐怖袭击。被杀人数越多,重点就越大。我从https://www.start.umd.edu/gtd/获取了数据集。我收到错误“美学必须为长度1或与数据相同”,但我不知道为什么。谢谢

dat <- data.frame(latitude = latitude, longitude = longitude, nkill = nkill)

p <- ggplot()
world <- map_data("world")
p <- p + geom_polygon(data = world, aes(x = longitude, y = latitude, group = group), colour = "white", fill = "gray")
p <- p + coord_map(xlim = range(longitude), ylim = range(latitude))
p <- p + geom_point(data = dat, aes(x = longitude, y = latitude, size = nkill, color = nkill))

数据具有以下结构

   latitude longitude nkill
1  8.868790 -73.19409     0
2  2.059819  45.32612     4
3 30.200819  66.99435     3
4 29.034412  69.15866     0
5 36.354145  43.14357     2
6 33.994591  44.35727     2

1 个答案:

答案 0 :(得分:0)

希望这会有所帮助:

ggplot() + 
geom_polygon(
    data=world, 
    aes(x=long, y=lat, group=group),
    colour="white",
    fill="gray") + 
coord_quickmap(
    xlim=range(dat$longitude),
    ylim=range(dat$latitude)) + 
geom_point(
    data=dat,
    aes(
        x=longitude,
        y=latitude,
        size=nkill,
        colour=nkill)) + 
theme_void()