如何正确获取Chart.js配置中数据集的指定数值?
解决Chart.js配置中无法获取数据的问题
你遇到的问题在于代码里直接调用data.datasets[0].data时,data并不是一个全局可访问的变量——它是你定义的config对象里的一个属性,浏览器找不到这个独立的data变量,所以alert自然没有输出。
要获取目标值426777.148122,可以通过两种方式实现:
方式1:直接从配置对象中读取
你已经把数据存在config里了,直接通过config访问即可:
// 获取第一个数据集的第一个数据点的y值 alert(config.data.datasets[0].data[0].y);
方式2:从已创建的Chart实例中读取
如果你想从已经初始化好的图表实例中获取数据,可以用你定义的forecast_chart变量:
// 从Chart实例中读取对应数据 alert(forecast_chart.data.datasets[0].data[0].y);
修正后的完整代码片段如下:
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script> <link rel="stylesheet" href="style.css" /> </head> <body> <div id = "Global"> <div id = "gauche"> <canvas id="line-chart" width="800" height="450"></canvas> <script> var ctx = document.getElementById("line-chart").getContext('2d'); var config = { type: 'line', data: { datasets: [{ data: [{'y': 426777.148122,'x': 18.123}, {'y': 258927.721326,'x': 46.8603108462}, {'y': 5419.37148146,'x': 1110.14081215}, {'y': 5136.33830766,'x': 1138.878123}], label: "Model", borderColor: "#3e95cd", fill: false }, { label : 'Data', fill:false, showLine: false, backgroundColor: "#FF0000", data : [{x: 17.0, y: 454995.091169}, {x: 1137.0, y: 3369.7047454}, {x: 1138.0, y: 3539.605825}, {x: 1140.0, y: 4927.1313084}], type: 'line' }] }, options: { title:{ display: true, text:"Graph" }, scales: { xAxes: [{ type: 'logarithmic', position: 'bottom' }], yAxes: [{ type: 'logarithmic' }] } } }; var forecast_chart = new Chart(ctx, config); // 这里用修正后的方式获取数据 alert(config.data.datasets[0].data[0].y); // 或者用实例获取:alert(forecast_chart.data.datasets[0].data[0].y); </script>
这样修改后,alert就能正确弹出你想要的426777.148122值啦。
内容的提问来源于stack exchange,提问作者Peter Harris
相关产品推荐
相关产品推荐

