ReferenceError: el gráfico no está definido – chartjs

3 minutos de lectura

Avatar de usuario de iWantToLearn
quiero aprender

¿Hay algún error con Chart.js? Cada vez que agrego alguno de los gráficos en Chart.js a mi sitio web, aparece un error, pero cuando utilicé el gráfico como programa independiente, funciona sin problemas y sin errores. Estoy usando HTML5.

   <html>
   <head>
      <meta charset="utf-8" />
      <title>Rice Consumption</title>
      <script src="https://stackoverflow.com/questions/29785623/Chart.min.js"></script>
    </head>
    <body>

      <canvas id="rice" width="600" height="400"></canvas>

      <script>
        var riceData = {
        labels : ["January","February","March","April","May","June"],
        datasets :
         [
            {
              fillColor : "rgba(172,194,132,0.4)",
              strokeColor : "#ACC26D",
              pointColor : "#fff",
              pointStrokeColor : "#9DB86D",
              data : [203000,15600,99000,25100,30500,24700]
            }
         ]
        }

          var rice = document.getElementById('rice').getContext('2d');
               new Chart(rice).Line(riceData);
    </script>
    </body>
    </html>

RESUELTO: Acabo de desacoplar el script del elemento canvas (creé otro archivo para que el script ejecute su función).

HTML actualizado:

      <html>
      <head>
      <meta charset="utf-8" />
      <title>Rice Consumption</title>
      <script src="https://stackoverflow.com/questions/29785623/Chart.min.js"></script>
      </head>
      <body>
      <canvas id="rice" width="600" height="400"></canvas>
      <script src="https://stackoverflow.com/questions/29785623/Chart.min.js"></script>
      <script src="rice.js"></script>
      </body>
      </html>

Nuevo archivo JavaScript:

var riceData = {
    labels : ["January","February","March","April","May","June"],
    datasets : [
        {
            fillColor : "rgba(172,194,132,0.4)",
            strokeColor : "#ACC26D",
            pointColor : "#fff",
            pointStrokeColor : "#9DB86D",
            data : [203000,15600,99000,25100,30500,24700]
        }
    ]
}

var rice = document.getElementById('rice').getContext('2d');
new Chart(rice).Line(riceData);

  • Agregue algunos detalles sobre cómo vinculó exactamente ChartJS. Dónde está el <script> ¿etiqueta?

    – Sebastián Simón

    22 de abril de 2015 a las 0:34

  • ¡Gracias! Esto parece raro, la verdad…

    – Sebastián Simón

    22 de abril de 2015 a las 0:59

  • ¿Está “Chart.min.js” en la misma carpeta que el HTML?

    – Sebastián Simón

    22 de abril de 2015 a las 1:00

  • incluya su JS con el tipo correcto. ¿Qué se muestra en su consola? ¿Algún 404 en su archivo Chart.min.js?

    – Mahmal Sami

    22 de abril de 2015 a las 1:13

  • @SamiX el type atributo en <script> las etiquetas son opcionales. No debería importar.

    – Sebastián Simón

    22 de abril de 2015 a las 1:21

También estaba recibiendo el mismo error. Para solucionar esto, moví el script del gráfico a un archivo graph.js separado.

Todavía estaba recibiendo el mismo error. Lo cual se corrige más tarde cuando coloco la etiqueta en el siguiente orden antes del final de la etiqueta como se muestra a continuación.

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
<script type="text/javascript" src="jscript/graph.js"></script>
</body>

La página se ve así:
ingrese la descripción de la imagen aquí

var ctx = document.getElementById("myChart").getContext('2d');
  var myChart = new Chart(ctx, {
      type: 'bar',
      data: {
          labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
          datasets: [{
              label: '# of Votes',
              data: [12, 19, 3, 5, 2, 3],
              backgroundColor: [
                  'rgba(255, 99, 132, 0.2)',
                  'rgba(54, 162, 235, 0.2)',
                  'rgba(255, 206, 86, 0.2)',
                  'rgba(75, 192, 192, 0.2)',
                  'rgba(153, 102, 255, 0.2)',
                  'rgba(255, 159, 64, 0.2)'
              ],
              borderColor: [
                  'rgba(255,99,132,1)',
                  'rgba(54, 162, 235, 1)',
                  'rgba(255, 206, 86, 1)',
                  'rgba(75, 192, 192, 1)',
                  'rgba(153, 102, 255, 1)',
                  'rgba(255, 159, 64, 1)'
              ],
              borderWidth: 1
          }]
      },
      options: {
          scales: {
              yAxes: [{
                  ticks: {
                      beginAtZero:true
                  }
              }]
          }
      }
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
<!DOCTYPE html>

<canvas id="myChart"></canvas>

Avatar de usuario de Mahmal Sami
mahmal sami

aquí hay un jsfiddle de trabajo de su código:
new Chart(rice).Line(riceData);
http://jsfiddle.net/mahmalsami/jqcthmyo/

Entonces, el problema definitivamente proviene de su inclusión externa de Chart.min.js

Puede encontrar un 404 en su js get. Asegúrese de estar vinculando a la carpeta js correcta. (intente acceder a su localhost/Chart.min.js para ver si puede acceder a su archivo)

  • He usado , esta etiqueta parece estar deshabilitada. ¿Podría sugerirme alguna idea para habilitarlo?

    – FRECEENA FRANCISCO

    27 de febrero de 2020 a las 6:32

  • @FRECEENAFRANCIS, ejemplo usando su

    – Mahmal Sami

    4 de marzo de 2020 a las 15:21

  • El violín no funciona ahora por alguna razón.

    - inocente

    5 mar a las 12:00

Avatar de usuario de Sidi M. Aourid
Sidi M. Aourid

Tengo el mismo error. Para resolver el problema, debe incluir la biblioteca chart.js correctamente de la siguiente manera:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.min.js"></script>

Avatar de usuario de 김강욱
김강욱

1) lo intenté Chart.js descargado de Chartjs.org. Pero, no está funcionando.

2) Intenta esto.

<script type="text/javascript" src="http://www.chartjs.org/assets/Chart.js">
</script>

Trabajando bien.

Avatar de usuario de Pankaj Sajekar
Pankaj Sajekar

Este error muestra que no instaló el complemento que ayuda a ejecutar la biblioteca Chart.js en la página HTML. si esa secuencia de comandos no está presente, este error muestra qué versión usó Chart.js y luego se pega esa versión de la secuencia de comandos.

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

Te ayudará a resolver el problema. Viene en muchas versiones como

<script src="https://cdn.jsdelivr.net/npm/chart.js/Chart.min.js"></script>

  • El problema es, chart.min.js en realidad está tratando de "importar" cosas, mientras que estoy usando JS simple, no hay "importación" en mi caso ... así que no funcionó. la versión de libs/Chart.js/4.2.1/chart.umd.min.js o Chart.min.js funciona, porque este es un archivo JS compilado adecuado que no importa, solo se incluye con todo, por lo que funcionará.

    –Ricky Levi

    14 de febrero a las 10:02

avatar de usuario de legoblocks
bloques de lego

Si ve esto de manera intermitente en Ruby on Rails 5, como yo, el problema tenía que ver con Turbolinks, que deshabilité. ¡Funciona muy bien ahora!

  • El problema es, chart.min.js en realidad está tratando de "importar" cosas, mientras que estoy usando JS simple, no hay "importación" en mi caso ... así que no funcionó. la versión de libs/Chart.js/4.2.1/chart.umd.min.js o Chart.min.js funciona, porque este es un archivo JS compilado adecuado que no importa, solo se incluye con todo, por lo que funcionará.

    –Ricky Levi

    14 de febrero a las 10:02

avatar de usuario del residente
peregrino

Me encontré con este problema dos veces con Chartjs y resolví ambos usando setTimeout para retrasar la llamada de la función que está causando el error.

  • Si bien esto puede funcionar, no es una solución tan sólida: los cambios en la duración de varios bits de código podrían hacer que esto deje de funcionar.

    – ralismarca

    21 de abril de 2021 a las 4:12

¿Ha sido útil esta solución?