【发布时间】:2019-02-08 10:02:26
【问题描述】:
一段时间后,我需要在 Angular 6 应用程序的折线图中显示一些数据,因此假设每 333 毫秒显示一些数据。我正在显示最多 30 秒内注册的数据,因此每个图形数据最多可以持续 30 秒。它必须从单击按钮开始。
这是我创建的一些测试数据,仅用于测试目的:
test_data = {
'222': {
joy: 66.5057373046875,
fear: 1.0003513832343742,
anger: 2.000018799044483,
disgust: 3.004251452162862,
sadness: 4.0001135088386945,
contempt: 5.001299204188399,
surprise: 6.203749045729637
},
'238': {
joy: 97.06363677978516,
fear: 17.500137131541123,
anger: 27.00000593749519,
disgust: 6.001324078417383,
sadness: 21.000043172625737,
contempt: 21.00033742573578,
surprise: 32.62530106306076
},
'722': {
joy: 66.5057373046875,
fear: 60.000351383234374,
anger: 70.00001879904448,
disgust: 10.004251452162862,
sadness: 92.0001135088387,
contempt: 40.0012992041884,
surprise: 50.20374904572964
},
'838': {
joy: 97.06363677978516,
fear: 15.000137131541123,
anger: 64.50000593749519,
disgust: 24.501324078417383,
sadness: 31.500043172625737,
contempt: 18.50033742573578,
surprise: 6.2048268765211105
},
'1722': {
joy: 66.5057373046875,
fear: 54.000351383234374,
anger: 72.00001879904448,
disgust: 0.004251452162861824,
sadness: 80.0001135088387,
contempt: 20.0012992041884,
surprise: 20.203749045729637
},
'2838': {
joy: 95.37223815917969,
fear: 41.000168004859006,
anger: 62.00000752212509,
disgust: 33.001674098544754,
sadness: 3.000052563053032,
contempt: 44.00044780407916,
surprise: 4.204549819231033
},
'2839': {
joy: 98.75503540039062,
fear: 1.0001062582232407,
anger: 1.0000043528652895,
disgust: 1.0009740582900122,
sadness: 2.000033782198443,
contempt: 2.0002270473924,
surprise: 1.2051039338111877
}
};
在这里,这些值“222”、“238”等是毫秒,这些值需要在图表中显示。我对这些数据进行了结构化,所以我有这样的数组:
joyArray = {
data: [66.5057373046875, 97.06363677978516, 66.5057373046875, 97.06363677978516, 66.5057373046875, 95.37223815917969, 98.75503540039062],
label: '',
borderColor: 'rgba(255, 217, 40, 1)',
backgroundColor: 'transparent',
fill: false
};
// push all arrays into this array to show it on the graph
this.chartData.push(this.joyArray, this.fearArray, this.angerArray, this.disgustArray, this.sadnessArray,
this.surpriseArray, this.contemptArray);
等等,对于每个对象属性。
我的图表是这样实现的:
<canvas id="chartCanvas"></canvas>
所以我需要单击一个按钮并为每一帧显示这些值(222ms、238ms...),有人知道如何使用 chartJS 来做到这一点吗?
编辑:改变了数组的结构,现在它是一个里面有数据的对象。绘制图表函数如下所示:
drawChart() {
this.chart = new Chart('chartCanvas', {
type: 'line',
data: this.data,
options: this.options
});
}
数据对象:
data = {
labels: [],
datasets: [] // datasets = this.chartData;
};
【问题讨论】:
标签: javascript angular chart.js