前兩天用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的學習仍在繼續,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/11640.html
標籤:其他
