小编Jes*_*ess的帖子

绘制 ggplot 世界地图,其中国家/地区根据数字范围着色

ggplot我第一次尝试绘制地图,但在实现我的想法时遇到问题。

首先,我有一个数据框,其中每个国家/地区代码都与一个数字相关联。例如:

id        count
US        2030
DE        1001
UA        730
SY        229
Run Code Online (Sandbox Code Playgroud)

我想获得一张ggplot地图,其中国家/地区按数字范围着色(例如:超过2000个深红色,1000-2000个红色,1000-600个橙色,600-200个黄色,少于100个白色)。颜色本身并不重要,我只是想让计数越低颜色越淡。

这是我尝试过的:

 world_map <- map_data(map = "world")
 world_map$region <- iso.alpha(world_map$region)
    
 ggplot(df, aes(map_id = id)) +
   geom_map(aes(fill = frequency), map = world_map) +
   expand_limits(x = world_map$long, y = world_map$lat) +
   scale_colour_manual(name = "counts", values = cols,
                    breaks = c(2000,1000,600,200), 
                    labels=c("more than 2000","2000-1000","1000-600","600-200")) +  
   theme_void() +
   coord_fixed()
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此代码时,我收到以下错误消息

不知道如何自动选择函数类型对象的比例。默认为连续。错误:美学必须是有效的数据列。有问题的审美:填充=频率。您是否输错了数据列的名称或忘记添加 after_stat()?

现在我明白我如何设置参数存在问题,但我在互联网上找不到任何解决方案(或者也许我是一个初学者,无法正确理解它)。

maps r ggplot2

4
推荐指数
1
解决办法
2482
查看次数

标签 统计

ggplot2 ×1

maps ×1

r ×1