Nominal, ordinal, quantitative y temporal: el tipo de campo cambia la gráfica
Recorre una gráfica de ventas por mes y arregla un eje de fechas que Vega-Lite trató como texto.
2 partes · 3 y 8 min
Curso gratis. Tu Maestro, una IA, .
En la página anterior viste qué filas llegan a dataset y por qué las medidas llevan "aggregate": "sum". Ahora fíjate en la pareja que aparece dentro de cada canal de encoding: junto a field, siempre escribes type. El campo dice qué columna de la tabla usar; el tipo le dice a Palabra del glosario cómo leerla.
Para elegir el tipo de un campo, hazte dos preguntas sobre esa columna: ¿qué pregunta responde este canal en la gráfica y tienen un orden natural sus valores? Vega-Lite define cinco tipos (nominal, ordinal, quantitative, temporal y geojson para mapas), y en tus reportes con Deneb vas a usar estos cuatro todo el tiempo:
| Tipo | Qué representa | Pregunta que responde | En Café La Ceiba |
|---|---|---|---|
nominal | Categorías sin orden natural | ¿Qué o cuál es? | Sucursal, Categoría |
ordinal | Categorías con un orden definido | ¿En qué nivel o posición va? | Una talla: Chico, Mediano, Grande |
quantitative | Números que se miden y se suman | ¿Cuánto es y a qué distancia queda? | Ventas, Meta |
temporal | Fechas y horas del calendario | ¿Cuándo ocurrió? | Mes |
Cambiar esa palabra en type transforma el eje, la escala, la leyenda y los colores de la gráfica.
Cuando pones un campo en el canal color, el tipo decide qué paleta usar. Con nominal, cada categoría recibe un tono distinto para distinguirla de las demás. Con ordinal, los colores van de claro a oscuro siguiendo el orden de las categorías. Con quantitative, aparece un degradado continuo desde el valor mínimo hasta el máximo.
En los ejes x y y ocurre algo similar. Un campo quantitative dibuja una escala numérica continua donde el doble de ventas ocupa el doble de espacio. Un campo temporal reparte las fechas según el tiempo que pasó entre ellas en el calendario. En cambio, un campo nominal o ordinal divide el eje en casillas del mismo ancho y pone un valor junto al otro.
Ten cuidado con las columnas que se escriben con dígitos pero solo identifican cosas, como un código de sucursal (101 y 102). Si les pones "type": "quantitative", Vega-Lite las trata como cantidades y dibuja un eje continuo con huecos y decimales. Sumar la sucursal 101 más la 102 carece de sentido porque esos dígitos funcionan como nombres; su tipo es nominal. Si tienes una columna en tu reporte y dudas entre dos tipos, dile a tu Maestro qué valores guarda y qué quieres comparar.
Recorre esta gráfica paso por paso para ver cómo trabajan juntos los tipos de campo en una serie mensual.
Paso 1 de 4
La gráfica completa
Ventas por mes de las seis sucursales juntas, una línea por categoría. Antes de leer las líneas, mira los tres canales: x es Mes (temporal), y es la suma de Ventas (quantitative) y el color es Categoría (nominal).
Buen lugar para parar. Después: parte 2 de 2 · 8 min
Observa también cómo el tipo del eje acompaña a la marca que elegiste. En la gráfica que acabas de recorrer, mark es "line" con "point": true. Como Mes es temporal en el eje x, cada línea une los seis meses en orden cronológico y deja comparar la pendiente de las tres categorías al mismo tiempo: se ve de inmediato que Bebidas frías sube de unos 300 mil a 430 mil pesos mensuales mientras Panadería se queda entre 200 y 240 mil.
Si cambiaras la marca a "bar" con esos mismos canales, Vega-Lite apilaría las tres categorías en una sola barra por mes. Quien mira barras apiladas lee muy rápido cuánto vendió toda la cadena en cada mes, pero le cuesta seguir la trayectoria de Bebidas frías porque su segmento empieza encima de otra categoría. La línea pide seguir la evolución en el tiempo; la barra pide comparar totales.
El error más común: una fecha tratada como texto
Cuando una IA te escribe el Palabra del glosario de una especificación para Deneb, o cuando copias un ejemplo, es muy común que el campo de fecha llegue con "type": "nominal". La gráfica se dibuja sin marcar ningún error, así que parece que funciona, pero el eje pierde el calendario.
Con nominal, cada fecha completa se vuelve una etiqueta de texto amontonada de lado, el eje ignora cuánto tiempo pasó entre un punto y otro, y las líneas pueden unir los meses en el orden en que venían las filas. Si faltara un mes en los datos, un eje temporal conservaría el espacio vacío para mostrar ese hueco; uno nominal pegaría los meses restantes como si fueran consecutivos.
Para que una columna de fechas mensuales funcione bien en el eje x, ponle "type": "temporal" y agrégale "timeUnit": "yearmonth" para agrupar los días por año y mes. Si además quieres que las etiquetas digan solo la abreviatura de cada mes, usa "axis": { "format": "%b" }.
En Power BI, antes de editar la especificación, revisa cómo llegó tu fecha a Values: que sea la columna de fecha real y nunca una columna de texto con el nombre del mes. Un nombre de mes es texto, y como texto se ordena de la A a la Z: abril aparece antes que enero.
Si en tu reporte la fecha llega rara, pégale a tu Maestro un ejemplo de cómo se ve.
Inténtalo
En el editor de arriba, ya con el eje arreglado, haz dos pruebas:
- En Valores selecciona Categoría y agrega en
encodingun canalcolorpara ese campo. Ponle primero"type": "nominal"y luego cámbialo a"type": "ordinal". Describe qué cambió en la gráfica y cuál de los dos le queda a tres categorías sin orden. - Cambia
"mark"de{"point": true, "type": "line"}a"bar". Describe qué cambió y qué lee distinto quien ve la gráfica.
Cuéntale a tu Maestro qué viste en cada prueba; si te atoras al editar la especificación, él te acompaña.