看板 R_Language 關於我們 聯絡資訊
野人獻曝一下... 不確定原po想要的東西是甚麼, 因為leaflet套件提供的addCircleMarkers() 是用來畫氣泡圖, 也就是以圓圈大小表示同一個欄位在不同地點的值 圓餅圖的話, 變成要加總不同地方、不同類別(欄位)的個數再計算各自的比例 如果是要做圓餅圖, 可以使用leaflet.minichart這個套件 以iris為例, 原始data還需要做一些調整 library(dplyr) library(leaflet) library(leaflet.minicharts) # minimal test dataset iris2 <- iris %>% group_by(Species) %>% tally %>% spread(Species, n) %>% mutate(lng=120.946, lat=23.754, total=150) %>% add_row(setsosa=40, versicolor=80, virginica=180, lng=115.946, lat=23.754, total=300) 大概整理成這樣 https://i.imgur.com/0gX5zEm.jpg
colors <- c("#4fc13c","#cccccc","#33383c") leaflet() %>% addTiles() %>% addMinicharts( lng = iris2$lng, lat = iris2$lat, type = "pie", chartdata = iris2[,c("setosa","versicolor","virginica")], colorPalette = colors, width = 60*sqrt(iris2$total)/sqrt(max(iris2$total)) ) 結果如圖 https://i.imgur.com/at17sma.jpg
用R玩了GIS一段時間, 希望有幫到忙~ ※ 引述《rebe212296 (綠豆冰)》之銘言: : [問題類型]: : Openstreetmap : [軟體熟悉度]: : 會基本資料清理,資料分析, : [問題敘述]: : 想以Openstreetmap 加入圓餅圖 : 圓餅圖是顯示該地的iris的Species比例 : [程式範例]: : install.packages("OpenStreetMap") : install.packages("leaflet") : install.packages("magrittr") : install.packages("mapproj") : library(OpenStreetMap) : library( leaflet ) : library( magrittr ) : library( mapproj ) : subscr<-data.frame(lat=c(55.381640),lon=c(10.433600) : m <- leaflet() %>% setView(lng=120.239, lat=22 : .992, zoom : = 12) : m%>% addTiles() : m %>% addProviderTiles("Stamen.Toner") : # 畫圓圈 : #addCircleMarkers(data = subscr, : lat = ~lat, lng = ~lon, : color = "blue") : # Pie Chart from data frame with Appended Sample Sizes : mytable <- table(iris$Species) : lbls <- paste(names(mytable), "\n", mytable, sep="") : pie(mytable, labels = lbls,ꀊ: ꂠ main="Pie Chart of Species\n (with sample sizes)") : [環境敘述]: : R 6.3.3 : [關鍵字]: : Openstreetmap -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.118.135.220 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1584691892.A.B9A.html
andrew43: 讚讚! 03/20 16:19