前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[R包分享] mapmixture包优雅绘制个性化地图

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

作者头像
R语言数据分析指南
发布2023-12-13 08:59:06
5240
发布2023-12-13 08:59:06
举报
文章被收录于专栏:R语言数据分析指南

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

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

官方文档

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

加载R包

代码语言:javascript
复制
devtools::install_github("Tom-Jenkins/mapmixture")

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

查看R包版本号

代码语言:javascript
复制
sessionInfo()

案例1

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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/

代码语言:javascript
复制
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
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎关注R语言数据分析指南
  • 官方文档
  • 加载R包
  • 查看R包版本号
  • 案例1
  • 案例2
  • 案例3
  • 案例4
  • 案例5
  • 案例6
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档