Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

105
Vistas
Personalice los colores de relleno para ChartJS 3.x usando el evento del complemento beforRender

Intento aplicar el código que puedo ver en esta pregunta: https://github.com/chartjs/Chart.js/issues/3071

pero no puedo entender cómo cambiar el código para que funcione en chartJS v3.x

 this.ChartInst = new Chart(this._ctx, { type: "line", data: this._data , options: this._chartoptions, plugins: [{ beforeRender: function (c, args, options) { var gradientFill = c.ctx.createLinearGradient(0, 0, 0, c.height); gradientFill.addColorStop(0.4, 'rgba(223,140,255,0.25)'); gradientFill.addColorStop(0.6, 'rgba(83, 155, 243, 0.25)'); var model = c.data.datasets[0]; model.backgroundColor = gradientFill; //console.log(model) } }] })

se llama al evento, y cuando consola.log el modelo var, puedo ver que backgroundColor está configurado en CanvasGradient pero no sucede nada en el gráfico. (Solo fondo gris predeterminado)

¿Alguna idea? Gracias

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Después de algunas búsquedas, encontré una solución cambiando el evento del complemento a beforeDraw y llamando al método update() del gráfico.

 this.ChartInst = new Chart(this._ctx, { type: "line", data: this._data , options: this._chartoptions, plugins: [{ beforeDraw: function (c, a, o) { var yScale = c.scales['y']; var max = c.data.datasets[0].data.reduce(function (prev, current) { return (prev.y > current.y) ? prev : current }).y; var yPos = yScale.getPixelForValue(max); var gradientFill = c.ctx.createLinearGradient(0, yPos, 0, c.height); gradientFill.addColorStop(0.4, 'rgba(83, 155, 243, 0.25)'); gradientFill.addColorStop(0.9, 'rgba(223,140,255,0.25)'); c.data.datasets[0].backgroundColor = gradientFill; c.update(); } }] })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda