Mi gráfico se define como
var myChart = new CanvasJS.Chart("myChartContainer", { animationEnabled: true, axisY :{ includeZero: false, gridColor: "rgba(140, 140, 140, 1)" }, toolTip: { shared: true, content: false }, legend: { fontSize: 13 }, data: myChartData.json }); Y necesito acceder a la instancia del gráfico a través de su elemento DOM (no quiero que myChart sea una variable global. Intenté recuperar la instancia del gráfico usando estos dos métodos
var charr = $('#myChartContainer').CanvasJS() var charr = $('#myChartContainer').CanvasJSChart() Pero ninguno de ellos funciona. El primero lanza jquery-3.4.1.min.js:2 Uncaught TypeError: $(...).CanvasJS is not a function , y el segundo simplemente devuelve un objeto indefinido. Estoy usando el complemento jQuery de CanvasJS.
¿Qué me estoy perdiendo? ¿Cómo puedo recuperar la instancia del gráfico?
Para su información, he visto esta respuesta, pero no ayudó.
Según la muestra de código que ha compartido, parece estar usando el complemento jQuery de CanvasJS pero creando un gráfico de forma JavaScript. Según la documentación de CanvasJS jQuery , puede crear un gráfico como $("#myChartContainer").CanvasJSChart(chartOptions); & luego puede obtener la referencia al gráfico como $("#myChartContainer").CanvasJSChart(); . Ejemplo de trabajo que se muestra a continuación.
var options = { title: { text: "CanvasJS jQuery Chart" }, data: [{ type: "line", dataPoints: [ { x: 1, y: 63 }, { x: 2, y: 69 }, { x: 3, y: 65 }, { x: 4, y: 70 }, { x: 5, y: 71 }, { x: 6, y: 65 }, { x: 7, y: 73 }, { x: 8, y: 96 }, { x: 9, y: 84 }, { x: 10, y: 85 }, { x: 11, y: 86 }, { x: 12, y: 94 }, { x: 13, y: 97 }, { x: 14, y: 86 }, { x: 15, y: 89 } ] }] }; $("#chartContainer").CanvasJSChart(options); var chart = $("#chartContainer").CanvasJSChart(); //Get reference to the chart instance /*chart.options.title.text = "New Title"; chart.render();*/ <script src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script> <script src="https://canvasjs.com/assets/script/jquery.canvasjs.min.js"></script> <div id="chartContainer" style="height: 300px; width: 100%;"></div>