Lenguaje de expresiones JSON para Highcharts
Con el lenguaje de expresiones JSON, las expresiones se representan como matrices,
donde el primer elemento especifica la operación y los siguientes son los argumentos.
Por ejemplo, ["unique", [1, 2, 2]] aplica la operación "unique" a la matriz [1, 2, 2], dando como resultado [1, 2].
También admite expresiones anidadas. Las expresiones anidadas son expresiones que
contienen otras expresiones como argumentos. Por ejemplo, ["split", ["toUpper", "sample text"], " "] primero convierte la cadena sample text a mayúsculas y luego la divide en una matriz de palabras, dando como resultado ["SAMPLE", "TEXT"].
Expresiones aritméticas admitidas
Puede utilizar estas expresiones aritméticas con el lenguaje de expresiones JSON:
| Operación | Expresión | Entrada | Salida |
|---|---|---|---|
| Suma | ["+", operando 1, operando 2] | { suma: ["+", 2, 4] } | { suma: 6 } |
| Resta | ["-", operando 1, operando 2] | { diferencia: ["-", 10, 3] } | { diferencia: 7 } |
| Multiplicación | ["*", operando 1, operando 2] | { producto: ["*", 5, 6] } | { producto: 30 } |
| División | ["/", operando 1, operando 2] | { cociente: ["/", 20, 4] } | { cociente: 5 } |
| Módulo | ["%", operando 1, operando 2] | { resto: ["%", 15, 4] } | { resto: 3 } |
| Exponenciación | ["**", base, exponente] | { potencia: ["**", 2, 3] } | { potencia: 8 } |
| Valor absoluto | ["abs", operando] | { absoluto: ["abs", -5] } | { absoluto: 5 } |
| Raíz cuadrada | ["sqrt", operando] | {raíz cuadrada: ["sqrt", 16] } | { raíz cuadrada: 4 } |
| Logaritmo (base 10) | ["log10", operando] | { logaritmo: ["log10", 100] } | { logaritmo: 2 } |
| Logaritmo natural | ["ln", operando] | { ln: ["ln", Math.E] } | { ln: 1 } |
| Redondeo | ["round", operando] | { redondeado: ["round", 3.7] } | { redondeado: 4 } |
| Redondeo por defecto | ["floor", operando] | { defecto: ["floor", 3,7] } | { defecto: 3 } |
| Redondeo por exceso | ["ceil", operando] | {exceso: ["ceil", 3.2] } | { exceso: 4 } |
| Seno | ["sin", operando] | { seno: ["sin", 0] } | { seno: 0 } |
| Coseno | ["cos", operando] | { coseno: ["cos", 0] } | { coseno: 1 } |
| Tangente | ["tan", operando] | { tangente: ["tan", Math.PI] } | { tangente: 0 } |
Operaciones con matrices compatibles
map: aplica una función de asignación a cada elemento de una matriz y devuelve una nueva matriz con los valores transformados.Por ejemplo,
["map", [1, 2, 3], ["*", ["item"], 2]]asigna cada elemento de la matriz[1, 2, 3]multiplicándolo por 2.filter: filtra una matriz basándose en una condición dada y devuelve una nueva matriz que contiene sólo los elementos que cumplen la condición.Por ejemplo,
["filter", [1, 2, 3, 4, 5], ["==", ["%", ["item"], 2], 0]]filtra la matriz[1, 2, 3, 4, 5]para incluir solo los números pares.reduce: reduce una matriz a un único valor aplicando una función reductora a cada elemento y acumulando el resultado.Por ejemplo,
["reduce", [1, 2, 3, 4, 5], ["+", ["acc"], ["item"]], 0]reduce la matriz[1, 2, 3, 4, 5]a la suma de sus elementos.get: recupera un valor de un objeto o una matriz especificando una clave o un índice.Por ejemplo,
["get", ["item"], "name"]recupera el valor de la propiedad"name" del elemento actual.unique: devuelve solo elementos únicos dentro de una matriz.Por ejemplo,
["unique", [1, 2, 2]]devuelve[1, 2].
Expresiones personalizadas
Puede utilizar expresiones personalizadas para mejorar la funcionalidad de los elementos visuales de Highcharts.
- getColumn
- Utilice la expresión
getColumnpara devolver valores de los índices de columna especificados. Por ejemplo, esta tabla muestra una lista de ubicaciones y la productividad de las respectivas impresoras:Nombre de la ubicación Productividad de la impresora Ubicación A 100 Ubicación B 50 Ubicación C 75 Esta consulta
getColumngenera una matriz que muestra todos los nombres de ubicación junto con la productividad de las respectivas impresoras:{ location name: ["getColumn", 0], printer throughput: ["getColumn", 1] }{ location name: ["Location A", "Location B", "Location C"], printer throughput: [100, 50, 75] }También puede proporcionar varias columnas a la vez para generar una matriz de matrices, como se muestra en este ejemplo:
{ values: ["getColumn", 0, 1] }{ values: [["Location A", 100], ["Location B", 50], ["Location C", 75]] }De forma similar a
getColumn, estas expresiones se pueden utilizar para devolver valores de columna de contenedores de campo o temas:getColumnFromGroupBydevuelve columnas del campo Agrupar por. El segundo argumento es el índice de la columna a devolver. Por ejemplo,["getColumnFromGroupBy", 0]devuelve los valores del primer campo como una matriz. Puede proporcionar varios índices para obtener una matriz de matrices donde cada elemento corresponde al campo del contenedor del campo Agrupar por.getColumnFromValuedevuelve las columnas del contenedor del campo Valor. Puede proporcionar varios índices para obtener una matriz de matrices donde cada elemento corresponde al campo del contenedor del campo Valor.getColorThemedevuelve la paleta de colores actual de un tema, como se muestra en este ejemplo:{ "color": ["getColorTheme"] }
- formatValue
- Utilice la expresión
formatValuepara aplicar formato a sus valores. Por ejemplo, esta expresión formatea la etiqueta del eje x con el valor de formato que se especifica en el primer campo de los contenedores de campo:"xAxis": { "categories": ["getColumn", 0], "labels": { "formatter": ["formatValue", "value", 0] } }