javascript

Reiniciar o limpiar gráfica de Chart.js

Introducción

Ayer estuve trabajando con Chart.js, una librería para generar gráficas. Debido a que la gráfica era actualizada cada que el usuario seleccionaba una opción distinta, a veces se mostraban algunas barras encima de otras, tooltips que no deberían estar y cosas de esas.

Así que investigando encontré la solución para reiniciar, limpiar y destruir una gráfica en Chart.js. En otras palabras, estaremos reiniciando la gráfica.

Nota: puedes ver un tutorial de cómo trabajar con gráficas en AngularJS aquí.

Reiniciar gráfica de Chart.js

Ponemos una variable global que albergará nuestra gráfica:

var ctx = document.getElementById('canvas').getContext('2d');
window.grafica = new Chart(ctx, {/* Opciones aquí */});

Y cada que la vayamos a actualizar, hacemos esta comprobación:

if (window.grafica) {
 window.grafica.clear();
 window.grafica.destroy();
}

Con el if comprobamos si existe nuestra variable. En caso de que exista, la limpiamos y destruimos.

Así, estamos reiniciando nuestra gráfica. De modo que el código completo podría quedar así:

var ctx = document.getElementById('canvas').getContext('2d');
if (window.grafica) {
 window.grafica.clear();
 window.grafica.destroy();
}
window.grafica = new Chart(ctx, {/* Opciones aquí */});

De esta manera, antes de asignar a la variable, limpiamos la gráfica si ya existe.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Excelente, me sirvió mucho estaba atorado con esto desde hace unos días y no podía solucionarlo, mil gracias

  • Buenas amigo saludos tengo un problema con un grafico si me muestra las actualizaciones pero me sale la primera grafica siempre, como si no eliminara la primera grafica

  • muchas gracias crack me funciono a la perfeccion, estoy trabajando con graficos dinamicos por rengo de fechas y me funciono a la perfeccion

  • Hola, apliqué esta misma forma, pero tengo varias gráficas en la misma vista y cuando pongo esa declaración en cada una de las gráficas, ya no se muestran y cuando se la dejo a una sola, funciona bien para esa misma, pero para las demás ya no, ¿habrá alguna forma de poder limpiar las otras sin que afecte a las demás? Gracias, de ante mano.

    • Hola, ¿cómo estás obteniendo la gráfica? y, ¿en dónde la estás guardando? en este ejemplo solo hay una gráfica, así que se guarda en window, pero en el caso de muchas, la variable se debería guardar en otro lugar o en otras variables. Si pones el código y un ejemplo que pueda reproducir sería mucho mejor
      Saludos

    • Me da gusto que te haya funcionado. Te invito a que te suscribas a mi blog ingresando tu correo electrónico en la barra lateral de la derecha. Gracias :)

Entradas recientes

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

1 semana hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

1 semana hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

1 semana hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

1 mes hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace