美文网首页
绘制世界地图or中国地图

绘制世界地图or中国地图

作者: 小杜的生信筆記 | 来源:发表于2023-08-14 21:38 被阅读0次

    写在前面

    在8月初,自己需要使用中国地图的图形,自己就此也查询相关的教程,自己也做一下小小总结,希望对自己和同学们有所帮助。

    最终图形


    这个系列从2022年开始,一直更新使用R语言分析数据及绘制精美图形。小杜的生信笔记主要分享小杜学习日常!如果,你对此感兴趣可以加入该系列的学习。

    欢迎投稿

    小杜一直在分享自己平时学习笔记,因此分享的内容大多数是与自己相关的,局限性比较大。我一直在倡导大家一起分享自己学习笔记或教程。分享内容不限于生信教程,可以是文章or文献遇到的问题及解决方案学习感悟等等。

    小杜的生信笔记投稿窗口会一直开放,也欢迎大家投稿。


    绘图教程

    绘制教程推荐:The R Graph Gallery,该网址我在前面的教程中也推荐过,对于初学者或是“老油条”的同学依旧是比较有好的。里面有很多的额图形,基本是我们平时可以使用到。

    https://r-graph-gallery.com/
    

    世界地图

    推图代码

    # Load libraries
    library(leaflet)
    
    # Make data with several positions
    data_red <- data.frame(LONG=42+rnorm(10), LAT=23+rnorm(10), PLACE=paste("Red_place_",seq(1,10)))
    data_blue <- data.frame(LONG=42+rnorm(10), LAT=23+rnorm(10), PLACE=paste("Blue_place_",seq(1,10)))
    
    # Initialize the leaflet map:
    m <- leaflet() %>% 
      setView(lng=42, lat=23, zoom=6 ) %>%
    
      # Add two tiles
      addProviderTiles("Esri.WorldImagery", group="background 1") %>%
      addTiles(options = providerTileOptions(noWrap = TRUE), group="background 2") %>%
    
      # Add 2 marker groups
      addCircleMarkers(data=data_red, lng=~LONG , lat=~LAT, radius=8 , color="black",
                       fillColor="red", stroke = TRUE, fillOpacity = 0.8, group="Red") %>%
      addCircleMarkers(data=data_blue, lng=~LONG , lat=~LAT, radius=8 , color="black",
                       fillColor="blue", stroke = TRUE, fillOpacity = 0.8, group="Blue") %>%
    
      # Add the control widget
      addLayersControl(overlayGroups = c("Red","Blue") , baseGroups = c("background 1","background 2"), 
                       options = layersControlOptions(collapsed = FALSE))
    

    不同地点之间连线


    该类型的世界地图也是经常可以看到的,也算是常用。

    绘图代码

    # World map is available in the maps package
    library(maps)
    
    # No margin
    par(mar=c(0,0,0,0))
    
    # World map
    map('world',
        col="#f2f2f2", fill=TRUE, bg="white", lwd=0.05,
        mar=rep(0,4),border=0, ylim=c(-80,80) 
    )
    
    # Dplyr for data wrangling and pipe function
    library(dplyr)
    
    # Cities
    Buenos_aires <- c(-58,-34)
    Paris <- c(2,49)
    Melbourne <- c(145,-38)
    
    # Data frame
    data <- rbind(Buenos_aires, Paris, Melbourne) %>% 
      as.data.frame()
    colnames(data) <- c("long","lat")
    
    # Show the cities on the map
    map('world',
        col="#f2f2f2", fill=TRUE, bg="white", lwd=0.05,
        mar=rep(0,4),border=0, ylim=c(-80,80) 
    )
    points(x=data$long, y=data$lat, col="slateblue", cex=3, pch=20)
    
    ### 连线
    # Load geosphere
    #BiocManager::install("geosphere")
    library(geosphere)
    
    # Background map
    map('world',
        col="#f2f2f2", fill=TRUE, bg="white", lwd=0.05,
        mar=rep(0,4),border=0, ylim=c(-80,80) 
    )
    
    # Dot for cities
    points(x=data$long, y=data$lat, col="slateblue", cex=3, pch=20)
    
    # Compute the connection between Buenos Aires and Paris
    inter <- gcIntermediate(Paris,  Buenos_aires, n=50, addStartEnd=TRUE, breakAtDateLine=F)
    
    # Show this connection
    lines(inter, col="slateblue", lwd=2)
    
    # Between Paris and Melbourne
    inter <- gcIntermediate(Melbourne,  Paris, n=50, addStartEnd=TRUE, breakAtDateLine=F)             
    lines(inter, col="slateblue", lwd=2)
    

    绘制中国地图

    这是本次教程自己要绘制的图形,自己也不画,也是查了一些想嘎的教程,最终获得最简单的图形。绘制世界地图,基本没有什么大的区别,但是绘制中国地图(or其他国家地图),就需要很精准的信息不然在图国家领土就可能会有所缺失,再各个方面你可能受到影响,虽然现在可能不会受影响,但是你敢确认以后会发什么呢.......

    此教程中国地图的数据来源

    本次教程绘制中国地图的数据来源于阿里数据可视化平台.

    网址:
    http://datav.aliyun.com/portal/school/atlas/area_selector
    

    在此网址下载中国地图的数据,下载格式为json格式。

    下载网址:
    https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json
    

    导入数据绘图

    #BiocManager::install("hchinamp")
    setwd("E:\\小杜的生信筆記\\2023\\20230815-中国地图")
    library(sf)
    library(ggplot2)
    china_map <- st_read("quanguo_Line.geojson.json")
    china_map
    plot(china_map['name'])
    
    ggsave("ChinaMap.pdf", width =  8, height = 6)
    

    简单的代码就可以绘制出来,这只是基础图形,如果你要美化,你需要花费很多的时间。



    往期文章:

    1. 最全WGCNA教程(替换数据即可出全部结果与图形)


    2. 精美图形绘制教程

    3. 转录组分析教程


    小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

    相关文章

      网友评论

          本文标题:绘制世界地图or中国地图

          本文链接:https://www.haomeiwen.com/subject/wdbcmdtx.html