2017-07-26 2 views
1

Ich möchte die Datenbeschriftungen, die standardmäßig in den Spalten zentriert sind, von meinem Wasserfalldiagramm über jeder Spalte verschieben. Durch die Highcharts Optionen sah ich die overflow option und diese SO post zum Verschieben von Datenetiketten mit Highcharts (nicht highcharters obwohl).Highcharter - Datenbeschriftung an den Anfang der Spalte verschieben

Durch die Implementierung der vorgeschlagenen Schritte crop = FALSE und overflow = 'none' wurden jedoch die Datenbeschriftungen nicht verschoben.

Hier ist ein kleines Beispiel mit den vorgeschlagenen Einstellungen:

library(highcharter) 

dataframe <- data.frame(name = c("A","B","C", "D"), 
         y = c(12.10, 5.45, -8.60, NA), 
         isIntermediateSum = c(FALSE, FALSE, FALSE, FALSE), 
         isSum = c(FALSE, FALSE, FALSE, TRUE), 
         color = c("#377EB8", "#4DAF4A", "#E41A1C", "#377EB8"), 
         stringsAsFactors = F) 

data_list = dataframe %>% list_parse() 

highchart() %>% 
    hc_chart(type = "waterfall") %>% 
    hc_title(text = "") %>% 
    hc_subtitle(text = "") %>% 
    hc_xAxis(type = 'category') %>% 
    hc_yAxis(
    title = list(text = ""), 
    labels = list(format = "{value:,.2f}%", useHTML = TRUE) 
) %>% 
    hc_legend(enabled=FALSE) %>% 
    hc_tooltip(pointFormat = '<b>{point.y:,.2f}%</b>', useHTML = TRUE) %>% 
    hc_add_series(data = data_list, 
       dataLabels = list(
        enabled=TRUE, 
        formatter= JS("function(){ return Highcharts.numberFormat(this.y, 2, ',') + '%';}"), 
        style=list(
        color="#FFFFFF", 
        fontWeight="bold", 
        textShadow="0px 0px 3px black" 
       ), 
        crop = FALSE, 
        overflow = 'none' 
       ) 
) 

Hat jemand von Ihnen wissen, wie Sie die Datenbeschriftungen zu bewegen?

+2

Satz dataLabels.inside auf false: http://jsfiddle.net/obryLg6q/2/ –

Antwort

2

Wenn i verstanden u korrekt

vertical: StringSince 2.3.3 Die vertikale Ausrichtung eines Datenetikett. Kann eins von oben, von Mitte oder von unten sein. Der Standardwert hängt von den Daten ab, zum Beispiel in einem Säulendiagramm, die Beschriftung liegt über positiven Werten und unter negativen Werten.

doc

 dataLabels: {verticalAlign: 'top'} 

JS Fiddle: http://jsfiddle.net/obryLg6q/


neue Geige: http://jsfiddle.net/obryLg6q/1/

 crop: false, 
     overflow: 'none', 
     x: 0, 
     y: -30, // above the bar 

OR

Satz dataLabels.inside auf false: jsfiddle.net/obryLg6q/2 - Grzegorz Blachliński 18 Minuten vor

Highcharts Entwickler Kommentar. Ich glaube, Sie diesem Rat folgen sollte)

 crop: false, 
     overflow: 'none', 
     inside: false 
+0

Ich kann nicht so genau in meine Frage gewesen: Ich brauche die Datenbeschriftungen über jedem Balken und nicht innerhalb. Trotzdem, danke für deine Hilfe. –

+0

@Martin G. xy zu den Datenetiketten hinzufügen – Constantine

+0

Danke @Grzegorz Blachliński für das Zeigen auf die innere Option und danke Constantine für das Posten! –

Verwandte Themen