#angular #chart.js #ng2-charts
Вопрос:
У меня есть некоторые данные, поступающие из службы, которые отображаются в ng2-chart
.
Это фиктивная диаграмма, которая на данный момент отображает некоторые поддельные данные.
Вот сторона HTML:
<canvas
baseChart
[datasets]="[getDataSet(currentTest.results['cpu'])]"
[options]="timeChartOptions"
chartType="line"
>
</canvas>
Вот timeChartOptions
:
public timeChartOptions: ChartOptions = {
scales: {
xAxes: [
{
type: 'time',
time: {
unit: 'second',
},
},
],
},
};
и вот как я форматирую данные(у меня только одна серия):
public getDataSet(testResult: TestResult): ChartDataSets | undefined {
if (testResult) {
return {
data: testResult.indexes.map((x, index) => ({ x: x, y: testResult.values[index] })),
label: testResult.name,
};
}
return undefined;
}
}
Я не думаю, что способ преобразования моей серии имеет значение, потому что я вижу данные в правильном порядке, но когда я отображаю диаграмму:
- Он быстро мигает со 100% правильным дисплеем
- Тогда данные не имеют правильной амплитуды(если это поможет, мои данные имеют амплитуду от 1 до 22).
Вот небольшое видео того, что я вижу, когда обновляю страницу: https://www.screencast.com/t/LzUdPK4mu
Есть идеи, чего мне не хватает?
Ответ №1:
Я нашел ответ!
Проблема заключалась в том, что я использовал функцию для вычисления набора данных для ng-диаграмм. Когда я поставил a console.log
, я понял, что эта функция часто вызывается, поэтому в основном диаграмма получала новый набор данных в цикле, и я предполагаю, что есть какая-то начальная анимация.