R 仅根据不同数据框中的值为特定国家/地区着色
我是R方面的初学者,我正在尝试制作一张世界地图,根据人均GDP为特定国家着色,并存储在另一个数据框架中。这是我的代码(在线找到): 我如何才能克服这个问题,并使R颜色的国家,我在我的数据框架R 仅根据不同数据框中的值为特定国家/地区着色,r,ggplot2,maps,data-visualization,R,Ggplot2,Maps,Data Visualization,我是R方面的初学者,我正在尝试制作一张世界地图,根据人均GDP为特定国家着色,并存储在另一个数据框架中。这是我的代码(在线找到): 我如何才能克服这个问题,并使R颜色的国家,我在我的数据框架 多谢各位 下面是一个工作示例,并遵循@stefan关于将数据连接到地图数据框的建议 在本例中,我创建了一个有限的数据框架,其中包含选定国家的gdp信息my_gdp: gdp_data <- data.frame( name = c("Australia", "Chin
多谢各位 下面是一个工作示例,并遵循@stefan关于将数据连接到地图数据框的建议 在本例中,我创建了一个有限的数据框架,其中包含选定国家的gdp信息
my_gdp
:
gdp_data <- data.frame(
name = c("Australia", "China", "Brazil"),
my_gdp = c(1.43, 13.61, 1.86)
)
name my_gdp
1 Australia 1.43
2 China 13.61
3 Brazil 1.86
然后,您仅使用最后一个数据帧,plot\u data
,来创建绘图。这将比在ggplot
中引用两个不同的数据框更容易管理,并确保绘制国家和填写gdp的数据行数相同
ggplot(data = plot_data) +
geom_sf(aes(fill = my_gdp)) +
scale_fill_viridis_c(option = "plasma", trans = "sqrt") +
ggtitle("World map (GDP in trillions $)", subtitle = paste0("(", length(unique(world$name)), " countries)"))
绘图
为什么不将您的数据加入地图df?@stefan我应该为缺失的59个国家的GDP制作虚拟变量吗?不。不需要制作任何虚拟变量。加入缺失国家时,默认情况下将分配NAs。如果加入出现问题,我建议您在帖子中添加一段GDP数据,例如在R控制台中键入
dput(head(GDP.data))
,并将以结构(…
开头的输出粘贴到帖子中。
gdp_data <- data.frame(
name = c("Australia", "China", "Brazil"),
my_gdp = c(1.43, 13.61, 1.86)
)
name my_gdp
1 Australia 1.43
2 China 13.61
3 Brazil 1.86
plot_data <- merge(world, gdp_data, by = "name", all.x = TRUE)
ggplot(data = plot_data) +
geom_sf(aes(fill = my_gdp)) +
scale_fill_viridis_c(option = "plasma", trans = "sqrt") +
ggtitle("World map (GDP in trillions $)", subtitle = paste0("(", length(unique(world$name)), " countries)"))