Todos los componentes (204)
Barras apiladas
Datos · StackedBarChart
Qué es y cuándo usarlo
Barras apiladas: una pila por categoría con un tramo por serie, para ver a la vez el total y de qué se compone («ventas por mes y por canal»). Comparte con LineChart y AreaChart los datos, la escala, la leyenda y la tabla.
El dibujo es el adorno y la tabla es el dato: debajo va una tabla de verdad (una fila por categoría, una columna por serie), oculta a la vista salvo con tableVisible. Al pasar el ratón por una pila salen los valores de cada serie y el total.
Cuándo usarlo
- Pocas categorías (meses, tiendas, semanas) donde importa el total de cada una y el reparto entre series.
- El orden de
serieses el de la pila: la primera va abajo. Los valores son positivos: un negativo o unnullno pintan tramo y no suman al total. - El eje empieza siempre en cero;
minymaxfijan la escala a mano, para comparar dos gráficos. formatescribe los valores (euros, unidades) en el eje, al pasar el ratón, en el resumen y en la tabla;categoryNamees la cabecera de la primera columna de la tabla.
Cuándo no
- Una sola serie, o comparar categorías sin reparto:
BarChart. - La evolución con muchos puntos:
AreaChartconstacked, oLineChart. - Partes de un total en un solo momento:
DonutChart.
Teclado: no tiene: no hay nada que pulsar. El dato completo está en la tabla.
Accesibilidad: el dibujo es una imagen (role="img") con un resumen escrito de cada serie (de dónde a dónde va y dónde llega a su máximo) y la tabla está siempre para el lector de pantalla. El color nunca es la única pista: la leyenda (por defecto, solo con más de una serie) y el resumen llevan el nombre de cada serie, y cada tramo va separado del de encima por una raya del color del fondo.
Aspecto fino: variables CSS --amset-series-*: -axis, -bar (lo más ancha que puede ser una pila), -cap, -footer, -height y -label. El tamaño mueve el alto (10, 14 o 18 rem) y el ancho máximo de la pila; height manda si se pasa. El color de cada serie sale de su tone.
Cómo se ve
- Tienda
- Online
- Mayorista
| Mes | Tienda | Online | Mayorista |
|---|---|---|---|
| Jul | 6900 | 5100 | 1900 |
| Ago | 5200 | 5600 | 2400 |
| Sep | 7800 | 6300 | 2800 |
<StackedBarChart
label="Ventas por mes y canal"
categories={['Jul', 'Ago', 'Sep']}
series={canales}
categoryName="Mes"
tableVisible
/>Props
Se importa con import { StackedBarChart } from '@amset/ui'. Las obligatorias van marcadas.
| Prop | Tipo | Para qué sirve |
|---|---|---|
categoriesobligatoria | readonly string[] | Lo que va en el eje de abajo: los meses, los dias. Una por valor de cada serie. |
labelobligatoria | string | Que se esta midiendo. Obligatoria: un grafico sin titulo no informa. |
seriesobligatoria | readonly ChartSeries[] | — |
axes | boolean | Rayas de fondo con su numero. |
categoryName | string | Como se llama la primera columna de la tabla. Por defecto, «Periodo». |
className | string | Se une a las clases de la biblioteca, no las sustituye. |
format | (value: number) => string | — |
height | number | Alto del dibujo en pixeles. Por defecto, el del tamaño. |
legend | boolean | La leyenda con el nombre de cada serie. Por defecto, solo si hay mas de una. |
max | number | — |
min | number | Minimo y maximo del eje a mano, para comparar dos graficos con la misma escala. |
size | "sm" | "md" | "lg" | — |
tableVisible | boolean | Enseña tambien la tabla. Para el lector de pantalla esta siempre. |
Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.
En el banco de pruebas
Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech:
