背景:我在 CRAN 上提交了幾個 R 包,都是很簡單的繪圖包,后來覺得沒什么意思便不再維護了。長期以來收到了不少使用者的反饋(issues),都是英語的,也懶得看。。。昨天給他們都回復了下(用中文回復的哈哈哈,讓他們自己翻譯吧哈哈)
該包繪制的地圖精度較低,如果你需要學習繪制高精度的中國地圖,歡迎加入我的線上培訓班獲取:歡迎加入 RStata 線上培訓班學習使用 R 語言和 Stata 進行數據處理和可視化
中國省級地圖 | 中國市級地圖 |
---|---|
你可以從 CRAN 上安裝這個包:https://cran.r-project.org/web/packages/hchinamap/
install.packages('hchinamap')
使用起來非常簡單,首先加載我提供的示例數據:
dir <- tempdir()download.file('https://mdniceczx.oss-cn-beijing.aliyuncs.com/chinadf.rda', file.path(dir, 'chinadf.rda'))load(file.path(dir, 'chinadf.rda'), verbose = TRUE)chinadf#> # A tibble: 527 x 3#> region name value#> <chr> <chr> <dbl>#> 1 China 北京 44#> 2 China 天津 28#> 3 China 河北 3#> 4 China 山西 65#> 5 China 內蒙古 18#> 6 China 遼寧 46#> 7 China 吉林 67#> 8 China 黑龍江 80#> 9 China 上海 8#> 10 China 江蘇 50#> # … with 517 more rows
繪制中國地圖:
library(hchinamap)china <- chinadf %>% dplyr::filter(region == "China")hchinamap(name = china$name, value = china$value, width = "100%", height = "400px", title = "中國地圖", region = "China")
還可以繪制各個省級行政單位的:
anhui <- chinadf %>% dplyr::filter(region == "Anhui")hchinamap(name = anhui$name, value = anhui$value, width = "100%", height = "500px", title = "安徽地圖", region = "Anhui")
另外你還可以在 Shiny Apps 里面使用:
dir <- system.file("examples", "hchinamap", package = "hchinamap")setwd(dir)shiny::shinyAppDir(".")
使用這個 App 你可以探索各個參數的功能。
關于該包的更多使用方法可以參考:https://cran.r-project.org/web/packages/hchinamap/vignettes/hchinamap.html (原諒我百度翻譯的英語文檔。。。)
我雖然在 hchinamap 函數里面設置了超過 20 個參數,但是依然不能滿足所有人的需要,所以我不再建議大家使用 hchinamap 繪制中國及各個省的地圖了。highcharter 可以完成該包提供的所有的功能的!
雖然代碼多了點,但是自定義的程度很高!
library(highcharter)library(jsonlite)library(tidyverse)readLines("https://data.jianshukeji.com/jsonp?filename=geochina/china.json", warn = F) %>% str_match(string = ., pattern = "\((.*)\)") -> textload("https://mdniceczx.oss-cn-beijing.aliyuncs.com/chinadf.rda", verbose = TRUE)china <- chinadf %>% dplyr::filter(region == "China") %>% select(-region)chinafromJSON(text[1, 2], simplifyVector = FALSE) -> cnhighchart(type = "map") %>% hc_add_series_map(map = cn, df = china, joinBy = "name", value = "value", name = "隨機數據:", borderWidth = 0.5, borderColor = "gray", states = list(hover = list(color = '#bada55')), dataLabels = list(enabled = FALSE), marginBottom = "200px") %>% hc_title(text = "使用 highcharter 繪制中國地圖") %>% hc_subtitle(text = "數據來源:隨機數據 | 繪制:<a src='https://tidyfriday.cn'>TidyFriday</a>", useHTML = TRUE) %>% hc_tooltip(headerFormat = "", pointFormat = "<b>{point.name}</b><br>隨機數據:{point.value}", borderRadius = 5) %>% hc_colorAxis(dataClasses = JS(' [{to: 1, color: "#ffffcc", name: "無"}, {from: 1, to: 20, color: "#d9f0a3"}, {from: 20, to: 40, color: "#addd8e"}, {from: 40, to: 60, color: "#78c679"}, {from: 60, to: 80, color: "#31a354"}, {from: 80, color: "#006837"}]')) %>% hc_legend(align = 'left', layout = 'vertical', valueDecimals = 0, floating = TRUE, symbolRadius = 0, x = 20, y = -20, symbolHeight = 14, backgroundColor = JS("(Highcharts.theme && Highcharts.theme.legendBackgroundColor) || 'rgba(255, 255, 255, 0.85)'"), title = list(text = "隨機數據")) %>% hc_add_theme(hc_theme_google()) %>% hc_exporting(enabled = TRUE) %>% hc_credits(enabled = TRUE) %>% hc_mapNavigation(enabled = TRUE)
繪制省份地圖的方法類似,例如繪制廣東省的:
chinadf %>% dplyr::filter(region == "Guangdong") %>% select(-region) -> gdgdreadLines("https://data.jianshukeji.com/jsonp?filename=geochina/guangdong.json", warn = F) %>% str_match(string = ., pattern = "\((.*)\)") -> textfromJSON(text[1, 2], simplifyVector = FALSE) -> gdmaphighchart(type = "map") %>% hc_add_series_map(map = gdmap, df = gd, joinBy = "name", value = "value", name = "隨機數據:", borderWidth = 0.5, borderColor = "gray", states = list(hover = list(color = '#bada55')), dataLabels = list(enabled = FALSE), marginBottom = "200px") %>% hc_title(text = "使用 highcharter 繪制廣東地圖") %>% hc_subtitle(text = "數據來源:隨機數據 | 繪制:<a src='https://tidyfriday.cn'>TidyFriday</a>", useHTML = TRUE) %>% hc_tooltip(headerFormat = "", pointFormat = "<b>{point.name}</b><br>隨機數據:{point.value}", borderRadius = 5) %>% hc_colorAxis(dataClasses = JS(' [{to: 1, color: "#ffffcc", name: "無"}, {from: 1, to: 20, color: "#d9f0a3"}, {from: 20, to: 40, color: "#addd8e"}, {from: 40, to: 60, color: "#78c679"}, {from: 60, to: 80, color: "#31a354"}, {from: 80, color: "#006837"}]')) %>% hc_legend(align = 'right', layout = 'vertical', valueDecimals = 0, floating = TRUE, symbolRadius = 0, x = -20, y = -20, symbolHeight = 14, backgroundColor = JS("(Highcharts.theme && Highcharts.theme.legendBackgroundColor) || 'rgba(255, 255, 255, 0.85)'"), title = list(text = "隨機數據")) %>% hc_add_theme(hc_theme_google()) %>% hc_exporting(enabled = TRUE) %>% hc_credits(enabled = TRUE) %>% hc_mapNavigation(enabled = TRUE)
其它省的方法幾乎一模一樣,唯一不同的就是這個地圖數據的鏈接啦,格式是這樣的:https://data.jianshukeji.com/jsonp?filename=geochina/{文件名}
其中中國和各個省的文件名分別為:
大家就可以試試自己感興趣的省份啦!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
步步高手機官網登錄?BBK智能手機的桌面上有vivo官網。點擊app進入官網。怎么進入vivo官網服務?1.打開手機瀏覽器,在搜索框輸入【vivo官網】,點擊搜索;怎么進入vivo官網服務?點開vivo官網。...
天都峰的具體地址在哪里?天都峰在安徽省。天都峰位于安徽省黃山東南部,西臨蓮花峰,東臨碗峰。與光明頂、蓮花峰并稱黃山三大主峰,是海拔1810米的36峰之一。在古代,它被稱為 "所有不朽之都 ",意思是天空中的城市,所以被命名為 "天都峰 "。峰頂平坦如手掌,有 的石雕登峰造極。里面有天然的石室,可以容納100人。戶外有石,似醉漢斜倚,名曰 "神仙手握洞門。天都峰位于哪里?天都峰位于黃山東南部,西臨蓮...
戴爾win10開始菜單和cortana無法工作怎么辦?這種情況一般是優化系統或者安裝第三方管理軟件造成的。先卸載第三方管理軟件和殺毒軟件,然后嘗試用以下方法解決問題:1.按下并保持Win R呼叫 "跑步和跑步并執行進入 "服務與營銷。2.找到用戶管理器服務,右鍵單擊并選擇 "屬性 ",選擇 "自動 "在啟動類型和點擊 "OK "。3.點擊 "立即注銷 "在彈出窗口中 "嚴重錯誤和提示框重新登錄。...