2017-12-26 4 views
1

ich folgenden für jede Bar gerne eine bestimmte Zeile setzen will:Referenzlinie für jeden Balken in Balkendiagramm hinzufügen highcharter mit

enter image description here

Aber ich kann es nicht. Um dies zu tun, ich habe den folgenden Code versucht, einen bestimmten Text zumindest zu setzen, aber es funktioniert nicht mehr:

mydata <- data.frame(A=runif(1:10), 
        B=runif(1:10), 
        C=runif(1:10)) 

highchart() %>% 
hc_chart(type = "column", inverted = TRUE) %>% 
hc_title(text = "MyGraph") %>% 
hc_yAxis(title = list(text = "Weights")) %>% 
hc_plotOptions(column = list(
    dataLabels = list(enabled = FALSE), 
    stacking = "normal", 
    enableMouseTracking = FALSE) 
) %>% 
hc_legend(layout="vertical") %>% 
hc_tooltip(formatter = function(){ return("<b> test</b><br/>")}, 
      useHtml = TRUE) %>% 
hc_series(list(name="A",data=mydata$A), 
      list(name="B",data=mydata$B), 
      list(name="C",data=mydata$C)) 

Meine Frage ist, wie kann ich rote Linien in das Balkendiagramm für jeden Taktstrich hinzufügen? Hier

Antwort

2

ist eine mögliche Lösung:

set.seed(1) 
mydata <- data.frame(A=runif(1:10), B=runif(1:10), C=runif(1:10)) 

library(highcharter) 
hc <- highchart() %>% 
hc_chart(type = "column", inverted = TRUE) %>% 
hc_title(text = "MyGraph") %>% 
hc_yAxis(title = list(text = "Weights")) %>% 
hc_plotOptions(column = list(
    dataLabels = list(enabled = FALSE), 
    stacking = "normal", groupPadding=0, 
    enableMouseTracking = FALSE) 
) %>% 
hc_legend(layout="vertical") %>% 
hc_tooltip(formatter = function(){ return("<b> test</b><br/>")}, 
      useHtml = TRUE) %>% 
hc_series(list(name="A",data=mydata$A), 
      list(name="B",data=mydata$B), 
      list(name="C",data=mydata$C)) 

# x position of red lines 
linepos <- c(1.3, 0.7, 1.8, 1.2, 1.0, 1.6, 0.7, 1.7, 0.8, 1.1) 
# height of red lines 
lw <- 0.35 
for (k in 1:length(linepos)) { 
    df <- data.frame(x=c(k-1-lw,k-1+lw),y=rep(linepos[k],2)) 
    hc <- hc %>% 
     hc_add_series(data = df, type = 'line', marker=list(enabled=FALSE), 
      x = ~x, y= ~y, color='red', lineWidth=5, showInLegend=FALSE, 
      enableMouseTracking = FALSE) 
} 
hc 

enter image description here

Verwandte Themen