javascript - 图表 JS 使用 addData 在 x 轴上添加标签
问题描述
我正在使用 Chart JS 构建一个动态折线图,并且我设法使将数据标签附加到 x 轴末尾的函数工作,如下所示:
我无法弄清楚的是如何更改函数,而不是将它们附加到 x-axis 的末尾(根据 gif),该函数将数据标签添加到 x-axis 的前面。本质上,在执行时,该函数将数组中的新数据添加到 x 轴的开头,而不是当前函数的结尾。
这是代码:
<button id="addData">Add Data</button>
document.getElementById('addData').addEventListener('click', function() {
if (myChart.data.datasets.length > 0) {
var year = YEARS[myChart.data.labels.length % YEARS.length];
myChart.data.labels.push(year);
myChart.data.datasets.forEach(function(dataset) {
dataset.data.push(myChart.data.datasets.data);
});
myChart.update();
}
});
加载时的默认标签。
var chartData = {
labels: ["09/10", "10/11", "11/12", "12/13", "13/14", "14/15", "15/16", "16/17", "17/18", "18/19"]
在加载的第一个标签“09/10”之前添加到 x 轴的附加标签。
var YEARS = ["08/09", "07/08", "06/07", "05/06, "04/05"];
我很茫然,所以任何帮助将不胜感激!
解决方案
而不是使用Array.push()
,你应该使用Array.unshift()
如下:
myChart.data.labels.unshift(year);
myChart.data.datasets.forEach((dataset) => {
dataset.data.unshift(myChart.data.datasets.data);
});
推荐阅读
- c++ - 关于 intel x86_64 了解何时将多个线程访问的内存按 128 字节和 64 字节进行分区
- javascript - 有没有更简单的方法来使用 jQuery 显示和隐藏许多 div?
- json - 在 zip 文件夹中编辑 .json 文件,无需解压缩
- java - 为什么即使在机器上运行多个 java 应用程序时也没有 JMX 冲突?
- java - Java AtomicReference#getAndSet 的用例是什么?
- vbscript - 需要通过 VBScript 重命名特定文件夹中的多个文件
- java - AdapterPost.java 中的“java.lang.NumberFormatException:null”错误
- regex - 为什么我不能在 PowerShell 的替换运算符中转换匹配标记?
- macos - 在 Mac Catalina 中运行可执行文件时出错
- javascript - 从受 SSL 保护的 HTTPS React JS Web 应用程序连接本地连接的打印机