test propiedades lineas highcharter hchart dev data r highcharts

propiedades - series mĂșltiples en Highcharter R apilados barchart



highcharts test data (1)

Después de revisar la documentación del paquete de Highcharter, visitar JBKunst en su sitio web y consultar list.parse2 (), todavía no puedo resolver el problema. El problema es el siguiente: si se desea representar varias series desde un data.frame en un gráfico de barras apiladas, las series pueden ser de entre 10 y 30 series. Por ahora las series se han definido a continuación, pero claramente tiene que haber una manera más fácil, por ejemplo, pasar una lista o data.frame fundido a la función hc_series similar a lo que se puede hacer con ggplot2.

Debajo del código con datos ficticios

mydata <- data.frame(A=runif(1:10), B=runif(1:10), C=runif(1:10)) highchart() %>% hc_chart(type = "column") %>% hc_title(text = "MyGraph") %>% hc_yAxis(title = list(text = "Weights")) %>% hc_plotOptions(column = list( dataLabels = list(enabled = FALSE), stacking = "normal", enableMouseTracking = FALSE) ) %>% hc_series(list(name="A",data=mydata$A), list(name="B",data=mydata$B), list(name="C",data=mydata$C))

Que produce esta tabla:


un buen enfoque para agregar series múltiples en mi opinión es usar hc_add_series_list (oc puede usar un ciclo for) que necesita una lista de series (una serie es por ejemplo list(name="A",data=mydata$A) .

Como dijiste, necesitas fundir / reunir los datos, puedes usar el paquete tidyr :

mynewdata <- gather(mydata)

Luego deberá agrupar los datos por argumento key para crear los datos para cada key / serie. Aquí puede usar el paquete dplyr :

mynewdata2 <- mynewdata %>% # we change the key to name to have the label in the legend group_by(name = key) %>% # the data in this case is simple, is just .$value column do(data = .$value)

Este marco de datos contendrá dos columnas y la segunda columna contendrá los diez valores para cada fila.

Ahora necesita esta información en una lista. Por lo tanto, debemos analizar usando list.parse3 of list.parse2 porque se conservan nombres como name o data .

series <- list.parse3(mynewdata2)

Así que finalmente cambia:

hc_series(list(name="A",data=mydata$A), list(name="B",data=mydata$B), list(name="C",data=mydata$C))

por:

hc_add_series_list(series)

Espero que esto esté claro.