翻譯|使用教程|編輯:楊鵬連|2021-06-30 11:12:40.413|閱讀 208 次
概述:毫無疑問,這場大流行病帶來了許多問題,同時也加劇了原有的問題。許多企業、學校或政府程序吸收了數字模型,而其中很大一部分則關門大吉。訪問這些數字模型成為一項幾乎無法完成的任務。這個問題多年來被忽視的增長現在很明顯。寬帶差距問題現在不容忽視。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Highcharts是一款純JavaScript編寫的圖表庫,為你的Web網站、Web應用程序提供直觀、交互式圖表。當前支持折線、曲線、區域、區域曲線圖、柱形圖、條形圖、餅圖、散點圖、角度測量圖、區域排列圖、區域曲線排列圖、柱形排列圖、極坐標圖等幾十種圖表類型。
毫無疑問,這場大流行病帶來了許多問題,同時也加劇了原有的問題。許多企業、學校或政府程序吸收了數字模型,而其中很大一部分則關門大吉。訪問這些數字模型成為一項幾乎無法完成的任務。這個問題多年來被忽視的增長現在很明顯。寬帶差距問題現在不容忽視。??
在此博客中,您將學習如何使用highcharter和tidyverse生態系統來創建由The Verge創建的地圖的基本副本。你準備好了嗎?讓我們開始吧!??
library
您將使用:
library(highcharter) library(janitor) library(tidytuesdayR) library(tidyverse) library(widgetframe)獲取數據
本文使用的數據是關于美國Broadbank Usage Percentage Dataset
tuesday_data <- tidytuesdayR :: tt_load ( 2021 , week = 20 )提取要使用的數據
數據的完整描述可以在這張美國寬帶問題地圖 Github 鏈接中找到
broadband <- tuesday_data$broadband %>% glimpse()下載地圖數據
在broadband表中,您將找到五列,其中COUNTY ID表示正在執行寬帶使用指標的縣的標識符。
因此,COUNTY ID可用于在地圖上定位每個縣的寬帶使用值。您可以使用以下幾種替代方法。
但是,在此博客中,您將使用Highchart團隊提供的美國地圖。
特別是highcharter提供了兩個實用功能,用于訪問和瀏覽不同的常用地圖:
map_layout_data <- download_map_data ( "countries/us/us-all-all.js" )如果您斜視美國地圖的列,您會注意到有一列名為fips; 這些是用于標識美國各縣的唯一 5 位代碼。所以,如果你考慮到這一點,COUNTY ID和fips列是等效的。是的,您以后可能需要做一些調整,但現在堅持這個想法。????
get_data_from_map(map_layout_data) %>% clean_names() %>% glimpse()一般預處理
要復制
Microsoft的The Verge地圖(即,以下簡稱target map),您只需關注以下兩個變量:
|variable |class |description | |:------------------------------|:---------|:-----------| |county_id |double | County ID | |broadband_usage |character | Percent of people per county that use the internet at broadband speeds based on the methodology explained above. Data is from November 2019. |但是等等...也許您應該問自己為什么不需要其他指示變量,例如ST或COUNTY NAME?
嗯,那是因為稍后,您將使用由Highcharts(在上一節中描述)提供的表之一來執行每個縣的名稱映射。但是,如果您不想使用這些提供的映射,您可以保留其他列并使用諸如zipcodeR或 之類的包tigris來幫助您進行正確的映射。??
現在,回到一般數據處理,這是一項相對簡單的任務。首先,作為一種很好的做法,您將使用包提供的名稱將數據列的名稱轉換為標準名稱。通過這種方式,輸入列將變得簡單、易于記憶且明顯合適。??clean_names()janitor
然后,您會將broadban_usage列從character類型轉換為numeric類型。雖然您最初可能會考慮使用 R 基礎或,但如果您需要進行手動工作,包中提供了一個有用的界面。選擇、清理并處理變量的解析。????as.numeric()type.convert()type_convert()readertype_converter()
broadband_processed <- broadband %>% clean_names() %>% select(county_id, broadband_usage) %>% type_convert( col_types = cols( broadband_usage = col_double() ), na = "-" ) %>% glimpse()為繪圖準備數據
我們的數據是干凈的,但是,要構建target mapwith highcharter,您需要對其進行一些轉換。首先,數據中沒有某些地方的寬帶使用信息(即帶有 的數據NA),county_id并且不是五字符代碼,而是四字符代碼。因此,您必須在四個字符以下的字符上加一個零。???
此外,還target map展示了兩個類別以突出寬帶使用問題。具體來說,那些使用寬帶速度小于或大于等于 15% 的縣。您必須應用此條件對broadband表中的數據進行分類。
最后,是時候將數據轉換為highcharter可以理解的格式了。為此,您將創建一個系列列表,為要顯示的地圖的每個類別創建一個系列。因此,您將用于為每個組創建一個數據子集。然后,您可以為每個系列添加元數據,例如顏色變量。現在,您可以將每個數據子集轉換為可以使用.group_nest()highcharterlist_parse()
重要的是,每個子集都有與基本highcharter圖表需要的完全相同的列,并帶有一些元數據。例如,要重新創建target map,每個類別都有列:名稱、值和 fips。其中,只有fips一個元數據變量。??????
broadband_series_data <- broadband_processed %>% filter(!is.na(broadband_usage)) %>% transmute( # Transform to a fips format ------------------------------------------ fips = str_pad( string = county_id, width = 5, side = "left", pad = "0" ), # Categorize data ----------------------------------------------------- value = broadband_usage * 100, name = if_else( condition = value < 15, true = "< 15%", false = ">= 15%" ) ) %>% # Transform data so that highcharter accepts it. ------------------------- group_nest(name) %>% mutate( color = c("#0B0073", "#B6B8B8"), data = map(data, list_parse) ) %>% glimpse()我需要告訴你,還有另一種方法可以使用dataClasses()來創建分類區域的等值線 ??
美國寬帶使用百分比圖
好吧,您已經完成了大量特技才能到達這里,但現在是創建target map. 你準備好了嗎?我們開始做吧!??????
第一步是將數據映射到圖形。為此,您將使用來定義所需圖形的類型。highchart()map
接下來,您將定義要如何顯示每個數據組。例如,寬帶使用率低于或高于 15% 的組。
使用,您可以在繪圖時配置每個系列的行為。反過來,您還可以通過在使用 .csv 創建的數據中添加更多元數據列(_e.g._、顏色)來覆蓋默認值。因此,當您運行時,它們都會共享 中使用的參數,但是您可以隨時隨心所欲地覆蓋一些 ??hc_plotOptions()list_parse()
hc_add_series_list()hc_plotOptions()
盡管您在上一步中構建了與“目標地圖”類似的圖形,但現在是添加相應文本注釋的時候了。通常,highcharter圖表中的HTML不是必需的,更不是強制性的。但是,如果需要,您可以在每個顯示文本調用中使用該參數(_例如_ 、、 等)。這樣,您定義的所有字符串都將被視為 HTML,并且您可以更好地控制如何以及在何處顯示特定文本片段。??useHTML = TRUEhc_title()hc_subtitle()
到目前為止的結果應該看起來幾乎相同;只有一件事不見了;導航按鈕。默認情況下,導航按鈕處于禁用狀態,因此您必須使用 激活它們。要將其放置在特定位置,請使用參數。有了它,您可以更改與參數,的對齊方式。值得一提的是,您還可以在圖例或文本的定位中找到這些參數。??hc_mapNavigation()buttonOptionsalignverticalAlign
最好用于在靜態頁面中顯示繪圖。在 Rmarkdown 或 Shiny 應用程序中,它可能不是必需的。??frameWidget()highcharter
highchart( type = "map" ) %>% # How do you want to display the data? ---------------------------------- hc_plotOptions( map = list( allAreas = FALSE, joinBy = "fips", value = "value", mapData = map_layout_data ), series = list( states = list( inactive = list( opacity = 0.7 ) ) ) ) %>% hc_add_series_list(broadband_series_data) %>% # Display text as in original source. ----------------------------------- hc_title( text = " <p style='text-align:center;'> <b>THIS IS A MAP OF AMERICAN'S BROADBAND PROBLEM</b> <br> A county-by-county look at the broadband gap </p> ", align = "center", useHTML = TRUE ) %>% hc_subtitle( text = " By Russell Brandom and William Joel | May 10, 2021, 9:00am EDT ", align = "center", useHTML = TRUE ) %>% hc_caption( text = " Map: The Verge. The database does not include broadband rates for Oglala Lakota County, South Dakota, or Kusilvak Census Area, Alaska, because of a coding irregularity. Source: <a href='//github.com/microsoft/USBroadbandUsagePercentages'> Microsoft </a> - <a href='//www.theverge.com/22418074/broadband-gap-america-map-county-microsoft-data'> Get the data </a>. ", useHTML = TRUE ) %>% hc_legend( title = list( text = " Percentage of people using the internet at 25Mbps or above per county. " ), align = "left", symbolHeight = 12, symbolWidth = 12, symbolRadius = 0, squareSymbol = FALSE ) %>% hc_tooltip( pointFormat = " <b>{point.name}</b><br> <br> <b>{point.value}%</b><br> Percent using broadband speed ", useHTML = TRUE ) %>% hc_credits( text = " <b>Replica made by: </b> <a href='//twitter.com/jvelezmagic'>@jvelezmagic</a> ", enabled = TRUE, useHTML = TRUE ) %>% # Customize zoom options ------------------------------------------------ hc_mapNavigation( enabled = TRUE, enableMouseWheelZoom = FALSE, buttonOptions = list( align = "right", verticalAlign = "bottom" ) ) %>% # Include your favorite theme! ----------------------------------------- hc_add_theme( hc_thm = hc_theme_elementary() ) %>% # Display as iframe ----------------------------------------------------- frameWidget() %>% identity()
APS幫助提升企業生產效率,真正實現生產計劃可視化呈現與控制,快速有效響應不同場景的生產計劃,提高準時交貨能力,提高產能和資源利用率
想要購買Highcharts正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: