javascript - Chart.js - cannot read property -


i want create chart multiple lines (multiple datasets) using django , chartjs.

i'm adding data data attribute, separated dash (-) each line , comma (,) every value. js splits , use draw chart.

<canvas id="product-linechart" data-labels="" data-charts="95.0,98.0,158.0,160.0,191.0,106.0,51.0,158.0,89.0,154.0-89.0,104.0,62.0,190.0,172.0,109.0,183.0,88.0,89.0,106.0-133.0,173.0,102.0,151.0,119.0,172.0,139.0,177.0,174.0,141.0-72.0,108.0,175.0,81.0,123.0,188.0,52.0,196.0,199.0,117.0-174.0,154.0,180.0,87.0,193.0,105.0,106.0,115.0,185.0,159.0-83.0,111.0,185.0,199.0,133.0,142.0,61.0,74.0,168.0,128.0-77.0,120.0,116.0,60.0,179.0,162.0,151.0,123.0,138.0,109.0-156.0,69.0,126.0,67.0,97.0,193.0,96.0,64.0,117.0,190.0-93.0,71.0,59.0,101.0,86.0,139.0,110.0,75.0,183.0,156.0" data-data_list="" width="1648" height="447" style="width: 1465px; height: 398px;" class=""></canvas> 

the problem raises errors:

uncaught typeerror: cannot read property '0' of undefined(…)(anonymous function) @ chart.js:11s.each @ chart.js:10(anonymous function) @ chart.js:11s.each @ chart.js:10initialize @ chart.js:11e.type @ chart.js:10s @ chart.js:10e.(anonymous function) @ chart.js:10(anonymous function) @ (index):118l @ jquery.min.js:2firewith @ jquery.min.js:2ready @ jquery.min.js:2a @ jquery.min.js:2 

the js:

<script type="text/javascript">         $(function () {             "use strict";             var charts = $('#product-linechart').attr('data-charts').split('-');             var datasets = [];             charts.foreach(function (chart) {                  datasets.push({                     fillcolor: "rgba(151,187,205,0.2)",                     strokecolor: "rgba(151,187,205,1)",                     pointcolor: "rgba(151,187,205,1)",                     pointstrokecolor: "#fff",                     pointhighlightfill: "#fff",                     pointhighlightstroke: "rgba(151,187,205,1)",                     data: chart.split('.')                 })             });              var data = {                 datasets: datasets             };             new chart(document.getelementbyid("product-linechart").getcontext("2d")).line(data, {                 responsive: true,                 maintainaspectratio: false             });          }); 

do know whats problem?

edit:

when set labels, new error occures:

(index):117 uncaught syntaxerror: unexpected identifier 26115.jpg:1 http://127.0.0.1:8000/dashboard/static/dashboard/img/26115.jpg 404 (not found) avatar.png:1 http://127.0.0.1:8000/dashboard/static/dashboard/img/avatar.png 404 (not found) (index):3949 uncaught typeerror: cannot read property 'getcontext' of null     @ htmldocument.<anonymous> (http://127.0.0.1:8000/dashboard/products/view/28/:3949:55)     @ l (http://127.0.0.1:8000/static/dashboard/js/jquery.min.js:2:16996)     @ object.firewith [as resolvewith] (http://127.0.0.1:8000/static/dashboard/js/jquery.min.js:2:17781)     @ function.ready (http://127.0.0.1:8000/static/dashboard/js/jquery.min.js:2:12504)     @ htmldocument.a (http://127.0.0.1:8000/static/dashboard/js/jquery.min.js:2:9909)(anonymous function) @ (index):3949l @ jquery.min.js:2firewith @ jquery.min.js:2ready @ jquery.min.js:2a @ jquery.min.js:2 

because haven't had lables in dataset provide chart api. when chartjs trying render chart looks labels before plotting each data on graph.

var data = {   datasets: datasets,   labels : ["10","20","30","40","50","60","70","80","90","100"] //<-- added labels }; new chart(document.getelementbyid("product-linechart").getcontext("2d")).line(data, {   responsive: true,   maintainaspectratio: false }); 

demo fiddle


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -