cover_image

[R包分享] mapmixture包优雅绘制个性化地图

ANERYAN R语言数据分析指南
2023年12月07日 11:14

欢迎关注R语言数据分析指南

本节来介绍一款新R包「mapmixture」其主要用来绘制地图并将数据以饼图的形式进行映射,非常的好用并且兼容ggplot2,更多详细内容请参考作者官方文档,有更多详细的案例。

官方文档

https://github.com/tom-jenkins/mapmixture

加载R包

devtools::install_github("Tom-Jenkins/mapmixture")

library(tidyverse)
library(mapmixture)
library(terra)
library(gridExtra)

查看R包版本号

sessionInfo()
图片

案例1

file <- system.file("extdata""admixture1.csv", package = "mapmixture")
admixture1 <- read.csv(file)


file <- system.file("extdata""coordinates.csv", package = "mapmixture")
coordinates <- read.csv(file)


map1 <- mapmixture(admixture1, coordinates, crs = 3035)
map1
图片

案例2

file <- system.file("extdata""admixture3.csv", package = "mapmixture")
admixture3 <- read.csv(file)

file <- system.file("extdata""coordinates.csv", package = "mapmixture")
coordinates <- read.csv(file)

map2 <- mapmixture(admixture3, coordinates,
                   cluster_cols = c("green","blue"),
                   cluster_names = c("Group A","Group B"),
                   crs = 3035,
                   boundary = c(xmin=-15, xmax=16, ymin=40, ymax=62),
                   pie_size = 1,
                   pie_border = 0.3,
                   pie_opacity = 1,
                   land_colour = "#d9d9d9",
                   sea_colour = "#deebf7",
                   expand = TRUE,
                   arrow = TRUE,
                   arrow_size = 1.5,
                   arrow_position = "bl",
                   scalebar = TRUE,
                   scalebar_size = 1.5,
                   scalebar_position = "tl",
                   plot_title = "Admixture Map",
                   plot_title_size = 12,
                   axis_title_size = 10,
                   axis_text_size = 8)

map2
图片

案例3

file <- system.file("extdata""admixture1.csv", package = "mapmixture")
admixture1 <- read.csv(file)

file <- system.file("extdata""coordinates.csv", package = "mapmixture")
coordinates <- read.csv(file)

map3 <- mapmixture(admixture1, coordinates,
                   cluster_cols = c("#f1a340","#998ec3"),
                   cluster_names = c("Ancestry 1","Ancestry 2"),
                   crs = 4326,
                   boundary = c(xmin=-15, xmax=16, ymin=40, ymax=62),
                   pie_size = 2,)+
  annotate("label",x = -10,y = 46.5,label = "Atlantic Ocean",size = 3)+
  annotate("text",x = 2.5,y = 57,label = "North Sea",size = 3)+
  theme(
    axis.title = element_text(size = 10),
    axis.text = element_text(size = 8))+
  guides(fill = guide_legend(override.aes = list(size = 5, alpha = 1)))
map3
图片

案例4

file <- system.file("extdata""admixture1.csv", package = "mapmixture")
admixture1 <- read.csv(file)

file <- system.file("extdata""coordinates.csv", package = "mapmixture")
coordinates <- read.csv(file)

map4 <- mapmixture(admixture1, coordinates,
                   cluster_cols = c("#f1a340","#998ec3"),
                   cluster_names = c("Ancestry 1","Ancestry 2"),
                   crs = 4326,
                   boundary = c(xmin=-20, xmax=20, ymin=40, ymax=62),
                   pie_size = 2.5,
)+
  theme(legend.position = "top",plot.margin = margin(l = 10, r = 10))+
  guides(fill = guide_legend(override.aes = list(size = 5, alpha = 1)))

structure_barplot <- structure_plot(admixture1,
                                    type = "structure",
                                    cluster_cols = c("#f1a340","#998ec3"),
                                    site_dividers = TRUE,
                                    divider_width = 0.4,
                                    site_order = c(
                                      "Vigo","Ile de Re","Isles of Scilly","Mullet Peninsula",
                                      "Shetland","Cromer","Helgoland","Flodevigen","Lysekil","Bergen"
                                    ),
                                    labels = "site",
                                    flip_axis = FALSE,
                                    site_ticks_size = -0.05,
                                    site_labels_y = -0.35,
                                    site_labels_size = 2.2)+
  theme(
    axis.title.y = element_text(size = 8, hjust = 1),
    axis.text.y = element_text(size = 5),
  )

grid.arrange(map4, structure_barplot, nrow = 2, heights = c(4,1))
图片

案例5

facet_barplot <- structure_plot(admixture1,
                                type = "facet",
                                cluster_cols = c("#f1a340","#998ec3"),
                                facet_col = 2,
                                ylabel = "Admixture proportions",
)+
  theme(
    axis.title.y = element_text(size = 10),
    axis.text.y = element_text(size = 5),
    strip.text = element_text(size = 6, vjust = 1, margin = margin(t=1.5, r=0, b=1.5, l=0)),
  )

grid.arrange(map4, facet_barplot, ncol = 2, widths = c(3,2))
图片

案例6

「tiff文件下载网址」
https://www.naturalearthdata.com/downloads/50m-raster-data/50m-natural-earth-1/

earth <- terra::rast("NE1_50M_SR_W/NE1_50M_SR_W.tif")
file <- system.file("extdata""admixture1.csv", package = "mapmixture")
admixture1 <- read.csv(file)

file <- system.file("extdata""coordinates.csv", package = "mapmixture")
coordinates <- read.csv(file)

map6 <- mapmixture(admixture1, coordinates, crs = 3035, basemap = earth)
map6
图片

关于永久群内容的说明

给予长期支持我们的忠实读者们一个特别待遇:凡是购买过小编2022年或2023年VIP会员文档的朋友们,「将自动获得2024年及以后更新的绘图文档代码,无需额外付费。」目前这两年的会员文档已累记卖出1500+,质量方面各位无需担忧。简要概括就是只要购买任意1年的会员内容,2024及后期公众号所更新的绘图文档均会在已经加入的会员群内分享。

本节介绍到此结束,有需要学习数据可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」下单购买,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码;

购买后微信发小编订单截图即邀请进新的会员交流群,无论购买那一年的会员文档都将获取「2024年及以后更新的绘图文档」,早买早享受,需要了解更多信息的朋友欢迎淘宝店铺交流咨询。


淘宝店铺(有需要欢迎关注)

图片

关注下方公众号下回更新不迷路


有趣R包分享 · 目录
上一篇[R包分享]aPEAR优雅绘制富集分析网络图下一篇gt包创建和定制表格
继续滑动看下一个
R语言数据分析指南
向上滑动看下一个