R
leaflet
Visualization
Report
資料視覺化
View Rpubs note on Leaflet套件介紹與範例 (多層互動地圖)
View another note on Leaflet Mini Chart (ShinyApp)
Reference: Leaflet Github
r icon::fa_map_marker_alt(color="#F4D03F",size=1)
)觸發彈出視窗
leaflet() %>% # 製作繪圖面板
setView(lng, lat, zoom) %>% # 設定視窗範圍 # 以該點放大多少倍
addTiles() %>% # 加上底圖
addMarkers(~lng, ~lat, ~popup, ~label, # 在哪個點上標記號 # 如果不設定經緯度會自己找變數
icon, clusterOptions = markerClusterOptions()) %>% # 把Marker做Clusters
#### Optional ####
# 選擇地圖樣式
addProviderTiles(providers$Stamen.Toner, group = "Toner") %>%
# 用範圍圓圈標示
addCircleMarkers(lng, lat, weight, radius, popup) %>% # 邊框粗細 # 半徑
# 使用套件的icon # 替代addMarkers()
addAwesomeMarkers(lng, lat, icon = awesomeIcons(icon = 'ios-close',
iconColor = 'black',
library = 'ion',
markerColor = getColor(df.20)
)) %>%
# 替代addMarkers(popup)
addPopups(lng, lat, content, options = popupOptions(closeButton = FALSE)) %>%
# 製作Legend
addLegend("bottomright", pal = colorNumeric(), values, title, opacity = 1) %>% # 調色盤 # 不透明度
# 製作控制面板
addLayersControl(
baseGroups = c("A地圖樣式", "B地圖樣式", "C地圖樣式"), # 前面要設定addTiles(group)和addProviderTiles才可用
overlayGroups = c("a族群的點", "b族群的點"),
options = layersControlOptions(collapsed = FALSE)) # 要不要展開layer control # 設F會展開
options(digits=4, scipen=40)
library(dplyr)
library(leaflet)
load("Biz.rdata") # 巴西電商資料 # 188,593 obs.
table(B$city) %>% sort %>% tail(8) # 前八大城市
rbind(range(B$latitude, na.rm=T), range(B$longitude, na.rm=T)) # 經緯度界線
B = subset(B, city == "Las Vegas" & !is.na(address) & state == "NV" &
B$latitude > 0 & B$longitude > -115.5 & B$longitude < -115) # 28,781 obs.
url = "'http://cm.nsysu.edu.tw/~msrc/wp/'"
B$popup = paste(
sep="<br/>", # 以<br/>換行符號作為分隔
sprintf("<b><a href=%s>%s</a></b>",url,B$name), # %s: string # 等於:paste0("b><a href=",url,">",B$name,"</a></b>")
sprintf("Stars:%.1f, Reviews:%d",B$stars,B$review_count), # %.1f: 指定浮點數輸出至小數點以下第一位 # %d: 印整數
# sprintf("lat:%.2f, lon:%.2f",B$latitude,B$longitude),
B$address)
B$popup[23677]
Learn More →
B$review_count %>% cut(c(0,5,10,50,100,200,400,9999)) %>% table # 評論數
B$rank = cut(B$review_count, c(0,5,10,50,100,200,400,9999)) # 評論數屬於哪一個cut
bx = split(B, B$rank) # 依照評論數的分級切割資料集, 改以list儲存
l <- leaflet() %>% addTiles()
# 原始寫法 # 避免使用for loop
names(bx) %>% purrr::walk( function(df) { # 有7個,執行7次
l <<- l %>% addMarkers(
data = bx[[df]], lng = ~longitude, lat = ~latitude,
label = ~name, popup = ~popup, group = df,
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds=F),
labelOptions = labelOptions(noHide=F, direction='auto'))
})
# for loop寫法(易懂版)
for(i in 1:length(bx)){
l = l %>% addMarkers(
data = bx[[i]], lng = ~longitude, lat = ~latitude,
label = ~name, popup = ~popup, group = names(bx)[i],
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds=F),
labelOptions = labelOptions(noHide=F, direction='auto'))
}
# lapply寫法
z = lapply(1:length(bx), function(i){
l = l %>% addMarkers(
data = bx[[i]], lng = ~longitude, lat = ~latitude,
label = ~name, popup = ~popup, group = names(bx)[i],
clusterOptions = markerClusterOptions(removeOutsideVisibleBounds=F),
labelOptions = labelOptions(noHide=F, direction='auto'))
})
library(knitr)
l %>% addLayersControl( # 使用lapply寫法的話,呼叫要指定最後一層: z[[7]]
overlayGroups = names(bx),
options = layersControlOptions(collapsed = FALSE) )
Learn More →
You can interact with the map in here
addWebGLHeatmap
可以做出熱圖
~htmlEscape()
防止html的語法跑掉
library(leaflet.extra)
df %>%
leaflet()%>%
addTiles()%>%
addMarkers(label=~Name)%>%
setView(lng=lng,lat=lat, zoom = 6) %>%
addSearchOSM() %>%
addReverseSearchOSM()
addSearchOSM()
打關鍵字就能搜尋其所在位置(類似googlemap的搜尋功能)
Learn More →
addReverseSearchOSM()
點擊地圖後回傳的點擊區域的經緯度
Learn More →
Other Reference: Rpubs R Markdown Theme date: '`r Sys.Date()`' output: rmdformats::material # readthedown date: "`r Sys.Date()`" output: prettydoc::html_pretty:
Aug 3, 2022Reference: http://ccckmit.wikidot.com/st:test1 d = density function 連續型 p = cumulative distribution function 離散 q = quantile function r = random number generation # 累積的常態機率分布 pnorm(175, mean = 170, sd = 5) - pnorm(170, 170, 5) # 計算170到175中間的那塊常態分布面積(mean:170, x:175, sd:5)
Nov 1, 2021Reference: Michael Hahsler(2011). "recommenderlab: A Framework for Developing and Testing Recommendation Algorithms." 推薦系統基本觀念—Collaborative Filtering(協同式過濾) 1. User-based Collaborative Filtering(UBCF) Memory-based CF 採用「全部」或巨量的使用者資料去進行推薦→佔記憶體 推薦系統通常是在線上進行運算,因此上述特性會不利於演算速度 原理
Aug 24, 2020Reference: Ebook Dataset: 古騰堡書庫 Regex in R 尋找 符號 舉例
Jun 20, 2020or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up