propiedades lineas highcharter grafica r highcharts rcharts

lineas - highcharts statistics



Agregar valores a rCharts hPlot tooltip (2)

Me gustaría agregar algunos valores adicionales a la información sobre herramientas estándar de Highcharts a través de rCharts. Código de ejemplo:

require(rCharts) df <- data.frame(x = c(1:5), y = c(5:1), z = c("A", "B", "C", "D", "E"), name = c("K", "L", "M", "N", "O")) h1 <- hPlot(x = "x", y = "y", data = df, type = "scatter", group = "z")

Esto genera una información sobre herramientas con los valores xey. Y el nombre de la serie z como título. Ahora también quiero agregar los valores de nombre a la información sobre herramientas. Sin embargo, no tengo idea de cómo se hace esto.


rCharts es un gran paquete. Pero todavía no está bien documentado (Quizás extraño este punto). Creo que debe redefinir la nueva función JS para el atributo tooltip . ¡Todos los literales JS deben estar entre #! y! #. Aquí un comienzo pero no funciona como me imagino (creo que es un buen comienzo):

h1$tooltip( formatter = "#! function() { return ''x: '' + this.point.x + ''y: '' + this.point.y + ''name: '' + this.point.group; } !#")


Después de varios años, tengo una respuesta.

Parece que estas funciones de envoltura como hPlot() no admiten variables de información sobre herramientas adicionales, incluso con una función de formateador personalizado simple. Vea el siguiente ejemplo de trabajo basado en el conjunto de datos de la pregunta.

require(rCharts) # create data frame df <- data.frame(x = c(1:5), y = c(5:1), z = c("A", "B", "C", "D", "E"), name = c("K", "L", "M", "N", "O")) # Plot using hPlot() approach h1 <- hPlot(x = "x", y = "y", data = df, type = "scatter", group = "z") h1$tooltip(borderWidth=0, followPointer=TRUE, followTouchMove=TRUE, shared = FALSE, formatter = "#! function(){return ''X: '' + this.point.x + ''<br>Y: '' + this.point.y + ''<br>Z: '' + this.point.z + ''<br>Name: '' + this.point.name;} !#") h1

La información sobre herramientas no funciona en el ejemplo anterior porque las variables en la matriz no tienen nombre. Ver str(h1) .

# Plot using manual build h1 <- rCharts:::Highcharts$new() dlev <- levels(factor(as.character(df$z))) for(i in 1:length(dlev)) { h1$series(data = toJSONArray2(df[df$z==dlev[i],,drop=F], json = F,names=T), name = dlev[i],type = c("scatter"), marker = list(radius = 3)) } h1$tooltip(borderWidth=0, followPointer=TRUE, followTouchMove=TRUE, shared = FALSE, formatter = "#! function(){return ''X: '' + this.point.x + ''<br>Y: '' + this.point.y + ''<br>Z: '' + this.point.z + ''<br>Name: '' + this.point.name;} !#") h1

Esto funciona porque las variables de la matriz se nombran usando names=T en la línea que comienza h1$series... Ver str(h1) .

Este tipo de solución resuelve el problema de información sobre herramientas, pero puede haber otros problemas con las matrices con nombre. Por ejemplo, rompe las cosas en un entorno de aplicaciones brillantes. Debe haber una razón por la cual hPlot() no usa las matrices nombradas.