Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Customize bubble map with highcharter

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/[email protected]/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 !

like image 610
Damien Dotta Avatar asked May 08 '20 13:05

Damien Dotta


People also ask

Is a bubble map a graphic organizer?

This simple, basic graphic organizer is a great tool for students to use when prewriting and brainstorming. It is can be used to identify story elements or to interpret informational texts.

How do you make a double bubble map?

A double bubble map is made by drawing two large circles. Then write the topic names or words of the two things you want to compare. Next, draw middle bubbles for the words or phrases that show similarities. Lastly, add the outside bubbles for the words or phrases you want to contrast.

What is bubble map organizer?

Bubble maps are used to describe a central idea or term at the center using adjectives in the bubbles that surround. Teachers can use this general organizer template for main idea and details, pre-writing, word analysis, brain dumps, concept mapping, background knowledge collection, and more.


1 Answers

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) 

enter image description here

like image 180
Damien Dotta Avatar answered Oct 11 '22 00:10

Damien Dotta