Vista previa#
Puntos sin solape sobre un eje. Demo completa con datos realistas, renderizada en el servidor. Más abajo están las configuraciones, una por una.
Ejemplos#
Todas las configuraciones del componente, cada una viva y con datos propios. Cambia entre Preview y Code en cada tarjeta y copia lo que necesites.
Uso#
Ejemplo mínimo con las props requeridas. Copia, pega y cambia los datos:
import { BeeswarmPlot, type BeeswarmPoint, ChartTooltipPortal } from "@carlos-burelo/klin";
import "@carlos-burelo/klin/styles.css";
<ChartTooltipPortal>
<BeeswarmPlot
points={/* … */}
ariaLabel="Beeswarm Plot"
/>
</ChartTooltipPortal>La gráfica es función pura de props a SVG: el HTML llega renderizado y sin JS se ve completa.
Envuelve en ChartTooltipPortal solo si quieres tooltip rico; sin JS queda \<title\> nativo.
Lee la guía /docs/ssr-first una vez y listo.
Código de esta demo#
Ver fuente (src/demos/beeswarm-plot.tsx)
/**
* Demo Enjambre del site (no se publica en el bundle de la lib).
*/
import {
BeeswarmPlot,
type BeeswarmPoint,
ChartTooltipPortal,
} from "@carlos-burelo/klin";
const points: BeeswarmPoint[] = [
{ value: 12.5, label: "Los Cocuyos" },
{ value: 13, label: "El Paisa" },
{ value: 12, label: "Tacos Charly" },
{ value: 14, label: "Los Tres Gallos" },
{ value: 13.5, label: "El Vilsito" },
{ value: 15, label: "Los Parados" },
{ value: 12.8, label: "El Huequito" },
{ value: 22, label: "El Faraón" },
{ value: 24, label: "El Borrego Viudo" },
{ value: 23, label: "El Pescadito" },
{ value: 25, label: "La Casa del Pastor" },
{ value: 26, label: "El Parnita" },
{ value: 24.5, label: "Taquería Orinoco" },
{ value: 32, label: "Contramar" },
{ value: 35, label: "Pujol" },
{ value: 33, label: "Quintonil" },
{ value: 38, label: "Sud 777" },
{ value: 34, label: "Rosetta" },
];
export default function BeeswarmPlotDemo() {
return (
<ChartTooltipPortal>
<BeeswarmPlot
ariaLabel="Precio del taco al pastor por taquería en CDMX: se agrupa en barato, medio y premium"
points={points}
formatX={(v: number) => `$${v}`}
/>
</ChartTooltipPortal>
);
}Props#
15 props · 2 requeridas
Tipo completo: BeeswarmPlotProps en beeswarm-plot.tsx.
Accesibilidad#
- Toda gráfica exige
ariaLabeldescriptivo; el SVG usarole="img"con\<title\>. - Cada forma lleva
\<title\>nativo (tooltip sin JS) ydata-chart-tippara el portal rico. - Sin datos se renderiza estado vacío homogéneo (
ChartEmpty), nunca SVG roto. - Detalle del contrato en /docs/accesibilidad.
Recursos#
- Fuente del componente:
beeswarm-plot.tsx - Guías: SSR-first · Tema · Tooltip