#angular #highcharts #regression #angular8 #angular-highcharts
#angular #highcharts #регрессия #angular8 #angular-highcharts
Вопрос:
Я пытаюсь построить линию тренда на моем сплайновом графике, используя плагин highcharts regression. Но я не могу найти ни одного фрагмента, показывающего, как правильно импортировать плагин highcharts-regression в мой угловой компонент.
Я импортировал угловые графики в свой компонент, как указано в приведенных ниже 2 строках.
import * as Highcharts from 'highcharts';
import HC_exporting from 'highcharts/modules/exporting';
HC_exporting(Highcharts);
и в html:
<highcharts-chart [Highcharts]="highcharts" [options]="chartOptions"
[callbackFunction]="chartCallback" [(update)]="updateFlag" [oneToOne]="oneToOneFlag"
style="width: 100%; height: 400px; display: block;">
</highcharts-chart>
Ниже я упомянул параметры highchart, используемые для построения моего сплайнового графика в моем компоненте angular8.
chartOptions = {
chart: {
type: 'spline'
},
title: {
text: 'With Outliers'
},
xAxis: {
title: {text: 'Chunk Order'},
tickInterval: 10,
categories: [
2,4,5,7,8
]
},
yAxis: {
title: {
text: 'Oil Pressure'
}
},
plotOptions: {
series: {
marker: {
enabled: false,
fillColor: '#f5bf42',
}
}
},
series: {
name: 'oilpressure',
lineColor: '#f5bf42',
regression: true,
/* regressionSettings: {
name : 'oilpressure',
type: 'linear',
color: 'rgba(223, 183, 83, .9)',
dashStyle: 'dash'
}, */
data: [345, 678,654,772,352]
}
};```
Ответ №1:
Все, что вам нужно сделать, это установить highcharts-regression
пакет, затем импортировать его и инициализировать с highcharts
помощью (как вы делали с модулем экспорта).
import { Component } from "@angular/core";
import * as Highcharts from 'highcharts';
declare function require(name:string);
const HC_Regression = require('highcharts-regression');
HC_Regression(Highcharts);
...
Живая демонстрация:
https://stackblitz.com/edit/highcharts-angular-highcharts-regression?file=src/app/app.component.ts
Комментарии:
1. Спасибо @Mateusz Kornecki, упомянутое вами решение помогло, и оно сработало, но оно работает только для статических данных. Когда я пытаюсь снова обновить данные «серии» после получения данных из другого вызова api, он снова удаляет линию тренда. Я обновил вопрос, упомянув, как я использую компонент highchart в html-коде. Также, когда я получаю данные из api, я обновляю объект chartOptions, используя строку ниже
this.chartOptions.series = newdata;
2. Кажется, что
highcharts-regression
он не работает с динамическими данными ( jsfiddle.net/BlackLabel/0o9uq5g1 ). Поскольку это сторонний продукт, я предлагаю связаться с автором github.com/streamlinesocial/highcharts-regression /…