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