2017-10-10 4 views
1

Ich versuche, ein gestapeltes Balkendiagramm mit Gruppierungen mit Highcharter zu erstellen, und müssen es ohne Verwendung der hchart()-Funktion erstellen. Ich habe den folgenden Code (hchart() Teil funktioniert).Highcharter gestapelten Spalte Gruppierungen nicht mit hchart()

data <- data.frame(
    building = c("Building A", "Building A", "Building B", "Building B"), 
    type = c("Rent", "Owned"), 
    measure = c(100, 35, 124, 150), 
    measure_target = c(95, 20, 122, 145) 
) 

# This works 
hchart(data, "column", hcaes(x = "building", y = "measure", group = "type")) %>% 
    hc_plotOptions(column = list(stacking = "normal")) 

# How do we go from the above, to something like this? 
highchart() %>% 
    hc_xAxis(categories = data$building) %>% 
    hc_add_series(type = "column", data = data$measure) %>% 
    hc_plotOptions(column = list(stacking = "normal")) 

Erwartete Ausgabe unten. Das Endziel besteht darin, die gestapelten Balken hinzuzufügen und ihr eine weitere hc_add_series zu folgen, die eine Reihe von Punkten in der Spalte measure_target hinzufügen würde (so werden Istwerte mit Zielen verglichen).

Ich brauche so etwas wie dies: enter image description here

Außer mit zwei gestapelten Balken und eine Linie für das Ziel, so etwas wie:

enter image description here

Antwort

1

So etwas wie das?

library(highcharter) 
library(dplyr) 

data <- data.frame(
    building = c("Building A", "Building A", "Building B", "Building B"), 
    type = c("Rent", "Owned"), 
    measure = c(100, 35, 124, 150), 
    measure_target = c(95, 20, 122, 145) 
) 

data_lst <- data %>% 
    group_by(type) %>% 
    do(data = list_parse2(.[, c('building', 'measure')])) %>% 
    rename(name = type) %>% 
    mutate(type = 'column') %>% 
    list_parse() 


data_lst2 <- data %>% 
    group_by(type) %>% 
    do(data = list_parse2(.[, c('building', 'measure_target')])) %>% 
    rename(name = type) %>% 
    mutate(type = 'scatter') %>% 
    list_parse() 


highchart() %>% 
    hc_xAxis(categories = data$building) %>% 
    hc_add_series_list(data_lst)%>% 
    hc_add_series_list(data_lst2)%>% 
    hc_plotOptions(series=list(stacking='normal')) 

enter image description here

+0

Schließen. Ich würde die Punkte brauchen, um nicht verbunden zu werden, was ich denke, dass Sie mit Streuung anstatt Linie machen könnten. Ich kann jedoch list.parse3 nicht finden. Welche Version von Highcharter benutzt du? Ich bin auf v 0.5.0.9999 –

+0

Im mit dev Version –

+0

@PorkChop die dev-Version von vor 1 Jahr: D, list.parseX wurden durch list_parse/list_parse2 ersetzt. – jbkunst

Verwandte Themen