【发布时间】:2019-03-11 03:57:19
【问题描述】:
我是第一次使用 HighCharts,事实证明很难找到资源来帮助我解决这个问题。
我正在尝试显示具有不同系列数量的多个图表。我不想设置多个选项模板,我只想使用一个并使用一个函数来每次自定义选项对象。在这里,我提供了从 API 接收到的图表之一的模拟数据。在应用程序中,我计划从 HTML 提供它。
由于我对 HighCharts 缺乏了解,我一直遇到各种问题,现在我只是绕着圈子解决一个问题,只是为了再次弹出过去的问题我希望有人能指出我的正确之处方向。 这是我的班级:
export class CompletenessTabComponent implements OnInit, AfterViewInit {
@ViewChild('chartTarget') chartTarget: ElementRef;
chart: Highcharts.ChartObject;
dataObj = {"id":0,
"tableName":"d1 vs d2",
"data":{"d1Count":[50,45,55,60,70],
"d2Count":[40,32,55,58,33],
"Errors":[2,3,4,1,0]},
"dates":[20180927,20180928,20181001,20181002,20181003]
};
constructor() { }
setHighChartOptions(data, seriesNames, chartTitle ): any {
count = 1;
highChartOptions.title.text = chartTitle;
highChartOptions.xAxis.data = data.dates;
this.chart.series[0].setData(this.dataObj.data[0]);
Object.keys(data.data).forEach((key) =>
this.chart.addSeries({
name: seriesNames[count],
data: data.data[key],
type: 'line'
}) count ++
);
return highChartOptions;
}
getHighChartOptions(){
return highChartOptions;
}
ngOnInit() {
this.chart = chart(this.chartTarget.nativeElement, this.setHighChartOptions(this.dataObj, ['d1', 'd2', 'error'], this.dataObj.tableName));
Object.keys(this.dataObj.data).forEach(key =>
console.log(key, this.dataObj.data[key]))
}
ngAfterViewInit() {
}
}
const highChartOptions = {
colors:
['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'],
credits: {
enabled: false
},
chart: {
backgroundColor: null,
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
itemStyle: {
fontSize: '10px',
fontWeight: 'normal'
}
},
tooltip: {
valuePrefix: '$'
},
title: {
text: ''
},
xAxis: {
type: 'date',
data: [],
title: 'date'
},
yAxis: {
title: {
align: 'middle',
rotation: 0,
text: ''
}
},
plotOptions: {
series: {
marker: {
enabled: false
},
shadow: false
}
},
series: [{
type: 'line',
name: '',
data: [null]
}]
};
我不断收到的一些错误是:
在 setHighChartOptions() 中:无法读取未定义的属性“系列”(在 this.chart.series[0]),& 无法读取未定义的“键”(在 ForEach 循环开始时)。
我认为最大的问题是图表对象未定义,这没有意义,因为我已经在类的顶部实例化了它,然后我在 onInit 上设置了图表选项。
我希望你能发现我的错误并帮助我。谢谢。
【问题讨论】:
-
你的
highChartOptions是const你不能修改const只是去掉这个前缀
标签: javascript angular typescript highcharts