Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

209
Visualizações
Agregar función dinámicamente a Chart.js

Estoy tratando de agregar alguna función de JavaScript a Chart.js. Quiero agregarlos fuera de Options porque quiero encontrar una manera de agregarlos dinámicamente cuando los necesito en mi proyecto Blazor .

Entonces, tengo este código JavaScript donde creo un gráfico.

 var ctx = document.getElementById("myChart").getContext("2d"); var myChart = new Chart(ctx, { type: "line", data: { labels: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], datasets: [ { data: [86, 114, 106, 106, 107, 111, 133], label: "Total", borderColor: "rgb(62,149,205)", backgroundColor: "rgb(62,149,205,0.1)" }, { data: [70, 90, 44, 60, 83, 90, 100], label: "Accepted", borderColor: "rgb(60,186,159)", backgroundColor: "rgb(60,186,159,0.1)" }, { data: [10, 21, 60, 44, 17, 21, 17], label: "Pending", borderColor: "rgb(255,165,0)", backgroundColor: "rgb(255,165,0,0.1)" }, { data: [6, 3, 2, 2, 7, 0, 16], label: "Rejected", borderColor: "rgb(196,88,80)", backgroundColor: "rgb(196,88,80,0.1)" } ] } }); myChart.data.labels.push('June'); myChart.options.plugins.legend.onClick = function (e, legendItem, legend) { console.log('legend click'); console.log(legendItem); }; myChart.options.elements.line.backgroundColor = function (ctx) { console.log('line backgroundColor'); return '#000000'; }; myChart.update();
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.6.2/chart.min.js"></script> <canvas id="myChart" width="500" height="150"></canvas>

Al final del script, puedo agregar una nueva etiqueta con push , agregar onClick para la leyenda... pero no puedo agregar una función para un elemento específico, por ejemplo, agregar un degradado a una línea

 const data = { labels: labels, datasets: [ { label: 'Dataset 1', data: myData, borderColor: function(context) { const chart = context.chart; const {ctx, chartArea} = chart; if (!chartArea) { return; } return getGradient(ctx, chartArea); }, }, ] };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

La función funciona, pero le falta la configuración, en V3, los gráficos de líneas predeterminados ya no se llenan, por lo que deberá establecer el fill en verdadero, también la propiedad de fondo del conjunto de datos anula la establecida en la parte de elementos, por lo que deberá cambiar el nombre de backgroundColor a pointBackgroundColor si quieres que los puntos tengan ese color, entonces funciona bien:

 var ctx = document.getElementById("myChart").getContext("2d"); var myChart = new Chart(ctx, { type: "line", data: { labels: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], datasets: [{ data: [86, 114, 106, 106, 107, 111, 133], label: "Total", borderColor: "rgb(62,149,205)", pointBackgroundColor: "rgb(62,149,205,0.1)", fill: true }, { data: [70, 90, 44, 60, 83, 90, 100], label: "Accepted", borderColor: "rgb(60,186,159)", pointBackgroundColor: "rgb(60,186,159,0.1)", fill: true }, { data: [10, 21, 60, 44, 17, 21, 17], label: "Pending", borderColor: "rgb(255,165,0)", pointBackgroundColor: "rgb(255,165,0,0.1)", fill: true }, { data: [6, 3, 2, 2, 7, 0, 16], label: "Rejected", borderColor: "rgb(196,88,80)", pointBackgroundColor: "rgb(196,88,80,0.1)", fill: true } ] }, }); myChart.data.labels.push('June'); myChart.options.plugins.legend.onClick = function(e, legendItem, legend) { console.log('legend click'); console.log(legendItem); }; myChart.options.elements.line.backgroundColor = function(ctx) { return '#000000'; }; myChart.update();
 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.6.2/chart.min.js"></script> <canvas id="myChart" width="500" height="150"></canvas>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda