python

R語言繪製美國疫情地圖(可互動式)

前兩天用python的plotly畫了一個疫情圖,發現這個挺簡單的,但是當我用R畫的時候就有點陌生了,畢竟才學沒多久。。。一開始我嘗試用R中的ggplot2包和maps包繪製美國疫情地圖,但是發現它的呈現出來的是一張圖片式的,只能顯示巨集觀的結果,而且繪製的前提是我需要知道對應經緯度下的疫情狀況,感覺有點麻煩呀。關於maps包所含的地圖資料集:

國家 maps地圖資料名

法國

義大利

紐西蘭

美國(郡)

美國(州)

美國(邊界)

全世界

france

italy

nz

country

state

usa

world

不錯,有我所需要的地理資訊,我們可以繪製一個簡單的美國地圖(qplot繪製散點):

  1. library(maps)
  2. library(ggplot2)
  3. 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,程式碼呈現:

  1. #載入需要用到庫
  2. library(plotly)
  3. library(xlsx)
  4. library(DT)
  5. df <- read.xlsx2("D:\\R\\RData\\america(8月).xlsx",sheetIndex = 1) #讀取表格
  6. # datatable(df)
  7. df$hover <- with(df, paste(state, '<br>', "確診人數:", definte,"<br>","死亡人數:", death, "<br>","死亡率:",rate,"%")) #滑鼠放上顯示相關資料
  8. fig <- plot_geo(df, locationmode = 'USA-states') #將表格資料與美國地圖關聯
  9. #互動
  10. fig <- fig %>% add_trace(
  11. locations = ~code,
  12. type='choropleth',
  13. z= ~definte,
  14. text = ~hover,
  15. colorscale="Reds"
  16. )
  17. #新增標題
  18. fig <- fig %>% layout(
  19. title = '美國疫情狀況'
  20. )
  21. #顯示
  22. fig

最後呈現的結果如下:

好啦,本文到此結束,R的學習仍在繼續。

本文章已修改原文用詞符合繁體字使用者習慣使其容易閱讀

版權宣告:此處為CSDN博主「落遷憶」的原創文章,依據CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/qq_45743005/article/details/108481611