

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Lenguaje de expresión Amazon Quick JSON para imágenes de Highcharts
<a name="highchart-expressions"></a>

Los elementos visuales de Highcharts aceptan la mayoría de los [valores JSON válidos](https://www.w3schools.com/js/js_json_datatypes.asp), operadores aritméticos estándar, operadores de cadenas y operadores condicionales. Los siguientes valores de JSON no son compatibles con los elementos visuales de Highcharts:
+ Funciones
+ Fechas
+ Valores indefinidos

Los autores rápidos pueden usar el lenguaje de expresiones JSON y crear esquemas JSON para crear imágenes de Highcharts. El lenguaje de expresiones JSON se usa para vincular JSON a conjuntos de datos APIs o conjuntos de datos para permitir la población y modificación dinámicas de las estructuras JSON. Los desarrolladores también pueden usar el lenguaje de expresión JSON para inflar y transformar los datos JSON con expresiones concisas e intuitivas.

Con el lenguaje de expresión JSON, las expresiones se representan como matrices, donde el primer elemento especifica la operación y los elementos siguientes son los argumentos. Por ejemplo, `["unique", [1, 2, 2]]` aplica la operación `unique` a la matriz `[1, 2, 2]` y da como resultado `[1, 2]`. Esta sintaxis basada en matrices permite expresiones flexibles que permiten transformaciones complejas en datos JSON.

El lenguaje de expresión JSON admite *expresiones anidadas*. Las expresiones anidadas son expresiones que contienen otras expresiones como argumentos. Por ejemplo, `["split", ["toUpper", "hello world"], " "]` convierte primero la cadena `hello world` en mayúscula y, a continuación, la divide en una matriz de palabras, lo que da como resultado `["HELLO", "WORLD"]`.

Utilice las siguientes secciones para obtener más información sobre el lenguaje de expresiones JSON para las imágenes de Highcharts en Amazon Quick.

**Topics**
+ [Aritmética](jle-arithmetics.md)
+ [Operaciones de matriz](jle-arrays.md)
+ [Expresiones rápidas de Amazon](jle-qs-expressions.md)

# Aritmética
<a name="jle-arithmetics"></a>

En la siguiente tabla se muestran las expresiones aritméticas que se pueden utilizar con el lenguaje de expresión JSON.


| Operación | Expression | Input | Output | 
| --- | --- | --- | --- | 
| Suma | ["\$1", operand1, operand2] | \$1 sum: ["\$1", 2, 4] \$1 | \$1 sum: 6 \$1 | 
| Resta | ["-", operand1, operand2] | \$1 difference: ["-", 10, 3] \$1 | \$1 difference: 7 \$1 | 
| Multiplicación | ["\$1", operand1, operand2] | \$1 product: ["\$1", 5, 6] \$1 | \$1 product: 30 \$1 | 
| División | ["/", operand1, operand2] | \$1 quotient: ["/", 20, 4] \$1 | \$1 quotient: 5 \$1 | 
| Módulo | ["%", operand1, operand2] | \$1 remainder: ["%", 15, 4] \$1 | \$1 remainder: 3 \$1 | 
| Potencia | ["\$1\$1", base, exponent] | \$1 power: ["\$1\$1", 2, 3] \$1 | \$1 power: 8 \$1 | 
| Valor absoluto | ["abs", operand] | \$1 absolute: ["abs", -5] \$1 | \$1 absolute: 5 \$1 | 
| Square Root (Raíz cuadrada) | ["sqrt", operand] | \$1 sqroot: ["sqrt", 16] \$1 | \$1 sqroot: 4 \$1 | 
| Logaritmo (base 10) | ["log10", operand] | \$1 log: ["log10", 100] \$1 | \$1 log: 2 \$1 | 
| Logaritmo natural | ["ln", operand] | \$1 ln: ["ln", Math.E] \$1 | \$1 ln: 1 \$1 | 
| Redondeo | ["round", operand] | \$1 rounded: ["round", 3.7] \$1 | \$1 rounded: 4 \$1 | 
| Techo | ["floor", operand] | \$1 floor: ["floor", 3.7] \$1 | \$1 floor: 3 \$1 | 
| Suelo | ["ceil", operand] | \$1 ceiling: ["ceil", 3.2] \$1 | \$1 ceiling: 4 \$1 | 
| Seno | ["sin", operand] | \$1 sine: ["sin", 0] \$1 | \$1 sine: 0 \$1 | 
| Coseno | ["cos", operand] | \$1 cosine: ["cos", 0] \$1 | \$1 cosine: 1 \$1 | 
| Tangente | ["tan", operand] | \$1 tangent: ["tan", Math.PI] \$1 | \$1 tangent: 0 \$1 | 

# Operaciones de matriz
<a name="jle-arrays"></a>

El lenguaje de expresión JSON permite la manipulación genérica de matrices para las siguientes funciones:
+ `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]` al multiplicarlo por 2.
+ `filter`: filtra una matriz en función de una condición dada y devuelve una nueva matriz que contiene solo 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 valor único al aplicar una función reductora a cada elemento y acumular 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 al especificar una clave o un índice.

  Por ejemplo, `["get", ["item"], "name"]` recupera el valor de la propiedad `"name"` del elemento actual.
+ `unique`: dada una matriz, solo devuelve elementos únicos dentro de esta matriz.

  Por ejemplo, `["unique", [1, 2, 2]]` devuelve `[1, 2]`.

# Expresiones rápidas de Amazon
<a name="jle-qs-expressions"></a>

Amazon Quick ofrece expresiones adicionales para mejorar la funcionalidad de las imágenes de Highcharts. Utilice las siguientes secciones para obtener más información sobre las expresiones rápidas más comunes para las imágenes de Highcharts. Para obtener más información sobre el lenguaje de expresiones JSON en Amazon Quick, consulte la [ QuickStart Guía visual de Highcharts](https://democentral.learnquicksight.online/#Dashboard-FeatureDemo-Highcharts-Visual) en [DemoCentral](https://democentral.learnquicksight.online/#).

**Topics**
+ [`getColumn`](#highcharts-expressions-getcolumn)
+ [`formatValue`](#highcharts-expressions-formatvalue)

## `getColumn`
<a name="highcharts-expressions-getcolumn"></a>

Utilice las expresiones `getColumn` para devolver valores de índices de columnas específicos. Por ejemplo, en la siguiente tabla se muestra una lista de productos junto con su categoría y precio.


| Product name (Nombre del producto) | Categoría | Precio | 
| --- | --- | --- | 
|  Producto A  |  Tecnología  |  100  | 
|  Producto B  |  Venta minorista  |  50  | 
|  Producto C  |  Venta minorista  |  75  | 

La siguiente consulta `getColumn` genera una matriz que muestra todos los nombres de los productos junto con su precio.

```
{
	product name: ["getColumn", 0], 
	price: ["getColumn", 2]
}
```

Se devuelve el siguiente JSON:

```
{
	product name: ["Product A", "Product B", "Product C"],
	price: [100, 50, 75]
}
```

También puede pasar varias columnas a la vez para generar una matriz de matrices, como se muestra en el siguiente ejemplo.

**Entrada**

```
{
	values: ["getColumn", 0, 2]
}
```

**Salida**

```
{
	values: [["Product A", 100], ["Product B", 50], ["Product C", 75]]
}
```

De forma similar a `getColumn`, se pueden usar las siguientes expresiones para devolver valores de columnas de temas o pozos de campos:
+ `getColumnFromGroupBy` devuelve las columnas del grupo por campo. El segundo argumento es el índice de la columna que se devolverá. Por ejemplo, `["getColumnFromGroupBy", 0]` devuelve los valores del primer campo en forma de matriz. Puede pasar varios índices para obtener una matriz de matrices en la que cada elemento corresponda al campo del grupo por pozo de campos.
+ `getColumnFromValue` devuelve columnas del pozo de campos de valores. Puede pasar varios índices para obtener una matriz de matrices en la que cada elemento corresponda al campo del pozo de campos de valores.
+ `getColorTheme`devuelve la paleta de colores actual de un tema rápido, como se muestra en el siguiente ejemplo.

  ```
  {
  "color": ["getColorTheme"]
  }
  ```

  ```
  {
  "color": ["getPaletteColor", "secondaryBackground"]
  }
  ```

**Ejemplo**

![\[alt text not found\]](http://docs.aws.amazon.com/es_es/quick/latest/userguide/images/get-column-example.png)


`getColumn` puede acceder a cualquier columna de la tabla:
+ `["getColumn", 0]`: devuelve una matriz `[1, 2, 3, 4, 5, ...]`
+ `["getColumn", 1]`: devuelve una matriz `[1, 1, 1, 1, 1, ...]`
+ `["getColumn", 2]`: devuelve una matriz `[1674, 7425, 4371, ...]`

`getColumnFromGroupBy` funciona de manera similar, pero su índice se limita a las columnas del grupo por pozo de campos:
+ `["getColumnFromGroupBy", 0]`: devuelve una matriz `[1, 2, 3, 4, 5, ...]`
+ `["getColumnFromGroupBy", 1]`: devuelve una matriz `[1, 1, 1, 1, 1, ...]`
+ `["getColumnFromGroupBy", 2]`: no funciona, ya que solo hay dos columnas en el grupo por pozo de campos

`getColumnFromValue` funciona de manera similar, pero su índice se limita a las columnas del pozo de campos de valores:
+ `["getColumnFromValue", 0]`: devuelve una matriz `[1, 2, 3, 4, 5, ...]`
+ `["getColumnFromValue", 1]`: no funciona, ya que solo hay una columna en el pozo de campos de valores
+ `["getColumnFromValue", 2]`: no funciona, ya que solo hay una columna en el pozo de campos de valores

## `formatValue`
<a name="highcharts-expressions-formatvalue"></a>

Use la `formatValue` expresión para aplicar un formato rápido a los valores. Por ejemplo, la siguiente expresión formatea la etiqueta del eje x con el valor de formato especificado en el primer campo de Quick field wells.

```
 "xAxis": {
		"categories": ["getColumn", 0],
		"labels": {
		"formatter": ["formatValue", "value", 0]
		}
	}
```