jotis.meRegula

BarChart

Gráfica de barras, apiladas por defecto, para comparar cantidades por periodo o categoría.

Cuándo usarlo

Props. labels, series, stacked (true por defecto; false para agrupadas), format(v), legend, width/height. Barras de 32px máx. con esquinas de 4px arriba.

Uso. Gasto por categoría y mes. Mismos colores de serie que LineChart.

Tercera serie en oscuro. En oscuro la escala de marca se invierte: la tercera serie (utility-brand-200) queda oscura sobre el fondo oscuro. Con tres series o más, deja siempre la leyenda (sale sola desde dos series) y, si hace falta, dale a esa serie un color propio.

Accesibilidad. El dibujo es una imagen con nombre: pasa en aria-label qué cuenta la gráfica; por defecto dice "Gráfica de barras". Cada barra lleva su valor en un título que se ve al pasar el ratón.

Detalles. Funciona sin JavaScript, también con format en Astro. Apiladas, solo la barra de arriba lleva las esquinas redondeadas.

Ejemplos

  • Hogar
  • Ocio
  • Transporte
0 €300 €600 €900 €1200 €NovDicEneFebMarAbrMayJunJulAgoSepOctHogar · Nov: 650 €Ocio · Nov: 120 €Transporte · Nov: 60 €Hogar · Dic: 650 €Ocio · Dic: 240 €Transporte · Dic: 80 €Hogar · Ene: 650 €Ocio · Ene: 180 €Transporte · Ene: 70 €Hogar · Feb: 650 €Ocio · Feb: 90 €Transporte · Feb: 90 €Hogar · Mar: 650 €Ocio · Mar: 140 €Transporte · Mar: 75 €Hogar · Abr: 650 €Ocio · Abr: 110 €Transporte · Abr: 60 €Hogar · May: 700 €Ocio · May: 220 €Transporte · May: 120 €Hogar · Jun: 700 €Ocio · Jun: 260 €Transporte · Jun: 140 €Hogar · Jul: 700 €Ocio · Jul: 150 €Transporte · Jul: 90 €Hogar · Ago: 700 €Ocio · Ago: 190 €Transporte · Ago: 85 €Hogar · Sep: 700 €Ocio · Sep: 170 €Transporte · Sep: 70 €Hogar · Oct: 700 €Ocio · Oct: 210 €Transporte · Oct: 95 €

Props

PropTipoPor defectoDescripción
labelsobligatoriastring[]—Etiquetas del eje horizontal, una por barra.
seriesobligatoriaChartSeries[]—Sin color, la paleta de series en orden (como LineChart).
stackedbooleantrueBarras apiladas; false para agrupadas.
format((v: number) => string)—Formato de los valores en el eje y en el título de cada barra.
legendboolean—Leyenda encima. Por defecto, sí con dos series o más.
widthnumber640Proporción del dibujo (se escala al ancho del contenedor).
heightnumber240
aria-labelstring"Gráfica de barras"Qué cuenta la gráfica, para lectores de pantalla.
classNamestring—

Código

import { BarChart } from "@jotis-me/react";

export default function Page() {
	return (
		<>
			<BarChart
				aria-label="Gasto por categoría y mes"
				labels={["Ago", "Sep", "Oct"]}
				series={[
					{ name: "Hogar", data: [700, 700, 700] },
					{ name: "Ocio", data: [190, 170, 210] },
				]}
				format={(v) => formatCurrency(v)}
			/>
		</>
	);
}