Customize bubble map with highcharter

纵饮孤独 提交于 2020-05-15 09:27:05

问题


Could someone help me to implement this excellent jsfiddle in a "shiny" application with the highcharter package ?
https://jsfiddle.net/BlackLabel/nr1y47a9/

I started writing something like this but there are still some problems ...
Here's the result : https://pasteboard.co/J7qWN7v.png

library(highcharter)
library(httr)
library(dplyr)

getContent <- function(url) {
  content(GET(url))
}
world <- getContent("https://cdn.jsdelivr.net/gh/highcharts/highcharts@v7.0.0/samples/data/world-population.json")

mapdata <- get_data_from_map(download_map_data("custom/world"))

hcmap("custom/world", showInLegend = FALSE) %>% 
  hc_add_series(name = "Countries", color = '#E0E0E0') %>%
  hc_add_series(data= world,type = "mapbubble", name = "Population", joinBy = c("iso-a3", "code3"), color= '#E0E0E0',
                minSize = 4, maxSize = "12%",
                tooltip = list(pointFormat = '{point.properties.hc-a2}: {point.z} thousands')) %>%
  hc_colorAxis(
    dataClasses = color_classes(c(0, 50000, 100000, 500000),
                                colors = c("green","#81c784","#43a047","#1b5e20")#,
                                # names = c("sg","tf","qsd")
    )) %>% 
  hc_legend(title = list(text = "Mon titre"),
            bubbleLegend = list(
              enabled = TRUE,
              borderColor = '#000000',
              borderWidth = 3,
              color = '#8bbc21',
              connectorColor = '#000000'
            ),
            align = "bottom", layout = "horizontal",
            verticalAlign = "bottom",
            floating = TRUE ,valueDecimals = 0,
            symbolHeight = 11, symbolWidth = 11, symbolRadius = 0,
            backgroundColor='#E0E0E8') %>% 
  hc_mapNavigation(enabled = TRUE) %>% 
  hc_exporting(enabled = TRUE) 

Many thanks in advance !


回答1:


Here's where I am, only the bubbleLegend (in comments #) doesn't work (it is displayed 3 times on the map)

mydf <- data.frame(
          lat = c(-7.1871, 36.95733, 17.9356, -20.4379, 30.2496, -54.9593,
                 18.0365, 17.9688, 18, 18.005, 17.9538),
          lon = c(129.3989, -121.576, -66.6961, -68.773, 138.6162, -128.3548,
                 -66.8143, -66.9705, -66.7603, -66.7765, -66.8265),
          z = c(4.5, 2.77, 4.1, 5.2, 4.5, 5.1, 2.52, 3.7, 2.68, 2.71, 2.88),
          part = c(10,15,8,20,30,12,5,17,21,9,11)
)

mydf <- mydf %>% 
  mutate(color = case_when(
    part < 10 ~ "red",
    part < 20 ~ "green",
    TRUE ~ "blue"
  ))
hcmap() %>% 
  hc_add_series(data = mydf, type = "mapbubble", name = "EarthQuake", maxSize = '12%') %>% 
  hc_tooltip(useHTML = T,headerFormat='',pointFormat = paste('Location :{point.place}<br> Part: {point.part} <br> Magnitude : {point.z}')) %>% 
  hc_legend(enabled = TRUE,
            title = list(text = "Mon titre"),
            # bubbleLegend = list(
            #   enabled = TRUE,
            #   borderColor = '#000000',
            #   borderWidth = 3,
            #   color = '#8bbc21',
            #   connectorColor = '#000000'
            # ),
            align = "bottom", layout = "horizontal",
            floating = TRUE ,valueDecimals = 0,
            symbolHeight = 11, symbolWidth = 11, symbolRadius = 0) %>%
  hc_colorAxis(
    dataClasses = color_classes(breaks = c(0, 10, 20, 100),
                                colors = c("red","green","blue")
    )) %>% 
  hc_title(text = "Global Seismic Activity") %>% 
  hc_mapNavigation(enabled = T)%>% 
  hc_exporting(enabled = TRUE) 



来源:https://stackoverflow.com/questions/61680074/customize-bubble-map-with-highcharter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!