Rhe*_*ter 4 r country-codes ggplot2 geom
我正在开展一个项目,其中一小部分是绘制一张世界地图,其中包含我列表中的 135 个国家/地区。我还有一个清单,上面写着它们是否已开发。
我如何在世界地图上用不同的颜色来表示发展状态?
我的数据看起来像这样
Country Code Developed
Brazil BRA 1
Singapore SIN 3
France FRA 1
Poland POL 2
Run Code Online (Sandbox Code Playgroud)
我从另一个问题中获取了下面的图片,但理想情况下,它看起来像这样,但有更多的国家和 3 种不同的颜色。
谢谢
小智 10
首先你需要安装软件包:
\ninstall.packages(c("cowplot", "googleway", "ggplot2", "ggrepel", \n"ggspatial", "libwgeom", "sf", "rnaturalearth", "rnaturalearthdata")\nRun Code Online (Sandbox Code Playgroud)\n之后我们将加载所有地图所需的基本包,即 ggplot2 和 sf。我们还建议对 ggplot2 (theme_bw) 使用经典的深色主题,该主题适用于地图:
\nlibrary("ggplot2")\ntheme_set(theme_bw())\nlibrary("sf")\nlibrary("rnaturalearth")\nlibrary("rnaturalearthdata")\n\nworld <- ne_countries(scale = "medium", returnclass = "sf")\nclass(world)\n\n## [1] "sf" \n## [1] "data.frame"\nRun Code Online (Sandbox Code Playgroud)\n之后我们可以:
\nggplot(data = world) +\n geom_sf()\nRun Code Online (Sandbox Code Playgroud)\n结果会是这样的:
\n\n在它之后,我们可以添加以下内容:
\nggplot(data = world) +\n geom_sf() +\n xlab("Longitude") + ylab("Latitude") +\n ggtitle("World map", subtitle = paste0("(", length(unique(world$NAME)), " countries)"))\nRun Code Online (Sandbox Code Playgroud)\n图表显示如下:
\n\n最后,如果我们想要一些颜色,我们需要这样做:
\nggplot(data = world) +\n geom_sf(aes(fill = pop_est)) +\n scale_fill_viridis_c(option = "plasma", trans = "sqrt")\nRun Code Online (Sandbox Code Playgroud)\n此示例显示每个国家/地区的人口。在此示例中,我们使用 \xe2\x80\x9cviridis\xe2\x80\x9d 色盲友好调色板作为颜色渐变(对于等离子变体,选项 =“plasma”),使用总体的平方根(即存储在世界对象的变量POP_EST中)
\n\n您可以在这里了解更多信息:
\nhttps://r-spatial.org/r/2018/10/25/ggplot2-sf.html
\nhttps://datavizpyr.com/how-to-make-world-map-with-ggplot2-in-r/
\nhttps://slcladal.github.io/maps.html
\n