我是靠谱客的博主 调皮大米,最近开发中收集的这篇文章主要介绍R语言可视化作图笔记(3)地理空间可视化地理空间可视化(Geospatial Visualization),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

地理空间可视化(Geospatial Visualization)

aegypti_albopictus.csv是一个包含了全球各地历年受到Aedes aegypti与Aedes albopictus两种蚊子感染登革热患者的统计数据。COUNTRY和COUNTRY_ID为各地名称与缩写。

plotly::plot_geo

通过plotly自带的地图,我们可以直接画出很棒的地图。下图是用plot_geo画出的历年各地受灾人数的总和在各地分布情况。

library(plotly)
data <- read.csv(file="aegypti_albopictus.csv")
data2 <- data
data2$NUM <- 1           # 求和
data3 <- aggregate(NUM ~ COUNTRY + COUNTRY_ID, data2, sum)
plot_geo(data3) %>%
  add_trace(
    # z = ~log(NUM), 
    z = ~NUM, 
    color = ~NUM, colors = 'Reds',
    # text = ~paste(COUNTRY, NUM, sep = "<br />"), 
    text = ~COUNTRY, 
    locations =~COUNTRY_ID
  )%>%
  layout(geo = list(
    scope = "world",
    showland = TRUE,
    landcolor = toRGB("gray80")

不好啊
会发现此图中由于有些地区数值过大,导致其他地区的图像不明显。
我们用log处理下数据后,图像是这样的
在这里插入图片描述
plo_geo中,我们也可以对地图类型进行修改,默认的是equirectangular(效果如上图),下图是conic equal area的效果

plot_geo(data3) %>%
  add_trace(
    z = ~log(NUM), color = ~NUM, colors = 'Reds',
    text = ~paste(COUNTRY, NUM, sep = "<br />"), 
    locations =~COUNTRY_ID
  )%>%
  layout(geo = list(
    scope = "world",
    projection = list(type = "conic equal area"),  # 这里修改地图投影类型
    showland = TRUE,
    landcolor = toRGB("gray80")
  ))

在这里插入图片描述

plot_mapbox

利用mapbox的API以及plotly::plot_mapbox绘制2004年全球的感染情况。VECTOR是蚊子种类,Y与X是发现患者的经纬坐标。
【就笔者玩下来,plot_mapboxplot_geo用起来更舒服流畅很多。“secret token”里填写 mapbox 提供的Access Tokens,需要自己注册后获取,由于笔者的是老师给的。就不在这里给出了,请见谅】

Sys.setenv('MAPBOX_TOKEN' = 'secret token')
year2004 <- data[data$YEAR == "2004",]
year2004 %>%
  plot_mapbox(lat = ~Y, lon = ~X,
              text = ~paste(VECTOR, LOCATION_TYPE, sep = "<br />"),
              color = ~VECTOR, colors = c("red", "black"),
              mode = 'scattermapbox')

在这里插入图片描述
在2013年,巴西成了埃及伊蚊(Aedes aegypti)受灾最严重的地区。下面我们来重点查看巴西在2013年的受灾情况。我们借助mutategroup_by将巴西地图切成50*50=2500点的平面图,并用N统计各点出现的患者数。

year2013 <- data[data$YEAR == "2013",]
year2013[year2013$COUNTRY=="Brazil",] %>% 
  mutate(Xgroup = cut_interval(X,n=50), Ygroup = cut_interval(Y,n=50)) %>% 
  group_by(Xgroup,Ygroup) %>% 
  summarise(N=n(),xx=mean(X),yy=mean(Y)) %>%  
  plot_mapbox(x=~xx,y=~yy,
              color=~N, colors =c("yellow","red"),
              text= ~paste(N)
              )

在这里插入图片描述
【在绘制“点”地图时有一个问题尤为明显,就是各地区密度的问题。例如南欧和东亚一些地区不大,但也有不少“点”,从地图上甚至覆盖整个地区,相较之下巴西这种地方虽然总受灾数大,但密度相比于那些地方明显低很多。所以地图只是参考,需要处理的地方还有很多。】

最后

以上就是调皮大米为你收集整理的R语言可视化作图笔记(3)地理空间可视化地理空间可视化(Geospatial Visualization)的全部内容,希望文章能够帮你解决R语言可视化作图笔记(3)地理空间可视化地理空间可视化(Geospatial Visualization)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部