前兩天用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的學習仍在繼續。
本文章已修改原文用詞符合繁體字使用者習慣使其容易閱讀
版權宣告:此處為CSDN博主「落遷憶」的原創文章,依據CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_45743005/article/details/108481611