chartjs-chart-treenode-test
v1.0.34
Published
A Chart.js plugin to render tree node graphs
Maintainers
Readme
chartjs-chart-treenode
Renderiza gráficos de árbol (tree node) personalizados en Chart.js a partir de enlaces (from, to, value) usando canvas, sin crear nuevos tipos de gráfico, compatible con scatter.
📦 Instalación
npm install chartjs-chart-treenodeO si usas CDN:
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-chart-treenode"></script>Versión de prueba:
Si quieres probar una versión experimental (puede contener errores o cambios inestables), puedes instalar:
npm install chartjs-chart-treenode-testO por CDN:
<script src="https://cdn.jsdelivr.net/npm/chartjs-chart-treenode-test"></script>⚠️ Esta versión es solo para pruebas y puede no ser estable.
🧠 ¿Qué es esto?
Este plugin de Chart.js permite visualizar nodos y relaciones jerárquicas (tipo árbol) usando datasets con enlaces from → to. Calcula automáticamente la profundidad, la posición vertical y dibuja conexiones suavizadas entre nodos, con soporte para colores personalizados, bordes y tooltips flotantes personalizados.
📊 Ejemplo de uso
import Chart from 'chart.js/auto';
import { treeNodePlugin } from 'chartjs-chart-treenode';
Chart.register(treeNodePlugin);
const ctx = document.getElementById('treeChart').getContext('2d');
new Chart(ctx, {
type: 'scatter',
data: {
datasets: [{
label: "Cantidad",
data: [
{ from: "Root1", to: "A", value: 300 },
{ from: "A", to: "B", value: 200 }
],
nodeColors: {
"A": "#1976d2",
"B": "orange"
},
nodeBorder: "4px",
nodeBorderColor: "black"
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: { legend: { display: false } },
scales: {
x: { display: false, min: 0, max: 1 },
y: { display: false, min: 0, max: 1 }
}
},
plugins: [treeNodePlugin]
});🧩 Opciones adicionales en el dataset
nodeColors: Objeto{ label: color }para cambiar el color de cada nodo.nodeBorder: Borde de cada nodo (ej."2px").nodeBorderColor: Color del borde.column: Objeto{ label: columnIndex }para forzar columna de un nodo.priority: Objeto{ label: prioridad }para definir el orden vertical dentro de una columna.
🧪 Requisitos
- Chart.js
^4.x - Navegador moderno con soporte para
<canvas>
🧑💻 Contribuciones
¡Bienvenidas! Puedes abrir un issue o hacer un pull request.
📄 Licencia
MIT
