R语言绘制美国疫情地图(可交互式)

时间:2020-9-11 作者:admin

前两天用python的plotly画了一个疫情图,发现这个挺简单的,但是当我用R画的时候就有点陌生了,毕竟才学没多久。。。一开始我尝试用R中的ggplot2包和maps包绘制美国疫情地图,但是发现它的呈现出来的是一张图片式的,只能显示宏观的结果,而且绘制的前提是我需要知道对应经纬度下的疫情状况,感觉有点麻烦呀。关于maps包所含的地图数据集:

国家 maps地图数据名

法国

意大利

新西兰

美国(郡)

美国(州)

美国(边界)

全世界

france

italy

nz

country

state

usa

world

不错,有我所需要的地理信息,我们可以绘制一个简单的美国地图(qplot绘制散点):

library(maps)
library(ggplot2)
qplot(long,lat,data=us.cities,color=I('blue'))+borders("state",size=0.5)

效果如下:

关于ggplot的函数基本使用可以参考。

更直接详细的可以参考这位大佬的站点:http://zevross.com/blog/2014/07/16/mapping-in-r-using-the-ggplot2-package/

正如你所见,很宏观的显示出一些信息,但是我想让我的地图更具互动式,我在查看plotly官网的时候,发现这个包不仅支持python还支持R,妙呀,来看看这些官网提供的互动式地图吧:https://plotly.com/r/maps/

更妙的是我不需要知道在之前爬取的表格中添加经度与纬度的信息,我直接用州的简写码就可以绘制对应数据:

这是部分表格数据,ok,代码呈现:

#加载需要用到库
library(plotly)
library(xlsx)
library(DT)
df <- read.xlsx2("D:\\R\\RData\\america(8月).xlsx",sheetIndex = 1) #读取表格
# datatable(df)
df$hover <- with(df, paste(state, '<br>', "确诊人数:", definte,"<br>","死亡人数:", death, "<br>","死亡率:",rate,"%")) #鼠标放上显示相关数据
fig <- plot_geo(df, locationmode = 'USA-states') #将表格数据与美国地图关联
#交互
fig <- fig %>% add_trace(
  locations = ~code,
  type='choropleth',
  z= ~definte,
  text = ~hover,
  colorscale="Reds"
)
#添加标题
fig <- fig %>% layout(
  title = '美国疫情状况'
)
#显示
fig

最后呈现的结果如下:

好啦,本文到此结束,R的学习仍在继续。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。