Chart.JS – Eliminar solo la segunda línea vertical

Resumen del Problema

Se tiene un gráfico de líneas simple utilizando Chart.JS. La necesidad es eliminar la primera y la última línea vertical del eje X y centrar las etiquetas en el gráfico. A pesar de los intentos, no se ha logrado alcanzar el objetivo deseado mediante las configuraciones actuales.

Código Actual

El código utilizado para generar el gráfico es el siguiente:

new Chart(stats, {
    type: 'line',
    data: {
        labels: ['', '', '2021', '2022', '2023', '2024', '', ''],
        datasets: [{
            data: [, , 100, 300, 200, 450],
            borderWidth: 4,
            borderColor: '#7168BD',
            backgroundColor: 'rgba(241, 163, 60, 0.1)',
            pointRadius: 5,
            pointHoverRadius: 8,
            pointBackgroundColor: "#7168BD"
        },
        {
            data: [, , 250, 200, 250, 400],
            borderWidth: 4,
            borderColor: '#B6A76E',
            backgroundColor: 'rgba(230, 57, 70, 0.1)',
            pointRadius: 5,
            pointHoverRadius: 8,
            pointBackgroundColor: "#B6A76E"
        }]
    },
    options: {
        scales: {
            y: {
                grid: {
                    color: '#B0B0B0',
                    borderColor: 'transparent'
                }
            },
            x: {
                grid: {
                    color: '#B0B0B0',
                    borderColor: 'transparent',
                }
            }
        },
        plugins: {
            legend: {
                display: false,
            }
        },
        responsive: true
    }
});

Solución Propuesta

Para eliminar la primera y última línea vertical del gráfico, y colocar las etiquetas en el centro de manera efectiva, se puede ajustar la configuración de las etiquetas del eje X y modificar el offset para centrar las etiquetas.

Una de las formas de hacerlo es mediante la personalización del eje X, ajustando la propiedad ticks en las opciones del eje:

x: {
    grid: {
        color: '#B0B0B0',
        borderColor: 'transparent',
    },
    ticks: {
        display: true,
        autoSkip: false, 
        callback: function(value, index, values) {
            // Evitar mostrar la primera y última etiqueta
            if (index === 0 || index === values.length - 1) {
                return '';  // Devuelve vacío para las etiquetas que deben eliminarse
            }
            return value; // Devuelve el valor por defecto para las otras etiquetas
        }
    }
}

Con estas modificaciones, las lines verticales en los extremos se eliminarán y las etiquetas deberían estar correctamente alineadas y centradas en la parte visible del gráfico.

Conclusiones

La solución para eliminar las líneas verticales indeseadas y centrar las etiquetas en el gráfico de Chart.JS implica el uso de la habilidad de personalización del eje X. Es importante probar los cambios en tu entorno y ajustar otras propiedades según sea necesario para lograr el diseño deseado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *