Search code examples
rshinyhighchartsr-highcharter

Rshiny Highcharter how can I create a piechart that drills down into another pie chart?


Examples I've seen are bar charts drilling down into bar charts. But I can't seem to find an example of a pie chart that drills down into another pie chart in RShiny.


Solution

  • You can specify the type parameter in hc_drilldown() as shown by editing the example from the highcharter reference page.

    library(highcharter)
    library(dplyr)
    library(purrr)
    
    df <- tibble(
        name = c("Animals", "Fruits"),
        y = c(5, 2),
        drilldown = tolower(name)
    )
    
    df
    #> # A tibble: 2 x 3
    #>   name        y drilldown
    #>   <chr>   <dbl> <chr>
    #> 1 Animals     5 animals
    #> 2 Fruits      2 fruits
    
    hc <- highchart() %>%
        hc_title(text = "Basic drilldown") %>%
        hc_xAxis(type = "category") %>%
        hc_legend(enabled = FALSE) %>%
        hc_plotOptions(
            series = list(
                boderWidth = 0,
                dataLabels = list(enabled = TRUE)
            )
        ) %>%
        hc_add_series(
            data = df,
            type = "pie",
            hcaes(name = name, y = y),
            name = "Things",
            colorByPoint = TRUE
        )
    
    dfan <- data.frame(
        name = c("Cats", "Dogs", "Cows", "Sheep", "Pigs"),
        value = c(4, 3, 1, 2, 1)
    )
    
    dffru <- data.frame(
        name = c("Apple", "Organes"),
        value = c(4, 2)
    )
    
    
    dsan <- list_parse2(dfan)
    
    dsfru <- list_parse2(dffru)
    
    hc <- hc %>%
        hc_drilldown(
            allowPointDrilldown = TRUE,
            series = list(
                list(
                    id = "animals",
                    type = "pie",
                    data = dsan
                ),
                list(
                    id = "fruits",
                    type = "pie",
                    data = dsfru
                )
            )
        )
    print(hc)