パッケージの詳細

chartjs-chart-treenode-test

Cheskito757MIT1.0.21

A Chart.js plugin to render tree node graphs

chartjs, plugin, tree, graph

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-treenode

O 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-test

O 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