2017-11-23 4 views
8

Hier ist mein Code-Schnipsel,Highmap R (oder) javascript - das Hinzufügen von benutzerdefinierter Legende

output$map <- renderHighchart({ 
region_map = hcmap("countries/nz/nz-all") 
     highchart(type = "map") %>% 
     hc_title(text = "Average") %>% 
     hc_add_series_map(map = region_map, df = data1, joinBy = "name", value = "LTA", borderColor = "#141B4D", 
         color = "color", 
         showInLegend = TRUE, 
         borderWidth = 1) 
         ) %>% 
     hc_tooltip(useHTML = TRUE, headerFormat ="", pointFormat = "{point.name} <br> LTA: {point.value}") %>% 
    }) 

enter image description here

Und hier meine Daten,

enter image description here

structure(list(name = c("Auckland", "Bay of Plenty", "Canterbury", 
"Central North Island", "Central Otago/Lakes District", "Coromandel" 
), LTA = c(23, 42, 25, 69, 71, 145), Changelabel = c("<20% Decrease", 
">20% Decrease", "<20% Decrease", ">20% Decrease", ">20% Decrease", 
">20% Decrease"), color = c("#B7DEE8", "#00B0F0", "#B7DEE8", 
"#00B0F0", "#00B0F0", "#00B0F0")), .Names = c("name", "LTA", 
"Changelabel", "color"), row.names = c(NA, 6L), class = "data.frame") 

Alles ist in Ordnung hier, aber wenn ich die Legende hier aktiviere, gibt es mir den Gradienten i Unabhängig davon, welche Farbsäule ich verwende, wie gebe ich die Farbspalte mit Änderungskennzeichen als Legende an wie

+0

Der erste Teil des Codes analysiert nicht (zu viele rechte Klammern), 'output $ map' kann nur' map' sein, oder? Schließlich wird auch der Name 'region_map' nicht gefunden. Ich muss sagen: Diese Kartenfragen sind sehr interessant! – storaged

+0

Ja, es ist nur eine Ausgabe. Und Sie können die von Highmap bereitgestellte nz/nz-all-Karte verwenden. aktualisiert –

Antwort

7

Ok. Nach so vielen Versuchen und Fehlern habe ich es geschafft. Hier ist, wie ich es tat (Bereitstellung von hier, um zukünftigen Lesern zu helfen).

Ich habe eine Spalte in meinem Dataset genannt Wert

data1 <- data1 %>% mutate(value = ifelse(Changelabel == ">20% Decrease",1, 
          ifelse(Changelabel == "<20% Decrease",2, 
          ifelse(Changelabel == "<20% Increase",3, 
          ifelse(Changelabel == ">20% Increase",4, 5))))) 

Und dann eine Datenklasse für Farbachse I erstellt:

dclass <- data_frame(from = seq(1, 4, by = 1), 
        name = c(">20% Decrease","<20% Decrease","<20% Increase",">20% Increase"), 
        color = c("#00B0F0","#B7DEE8","#92D050","#00B050")) 
dclass <- list_parse(dclass) 

Da ist in meinem Chart-Code macht ich diese Zeile hinzugefügt:

hc_colorAxis(dataClasses = dclass) 

Jetzt funktioniert es mit der richtigen Legende, wie ich erwartet habe.

Verwandte Themen