如何通过angular中的循环更新饼图(使用highchart)的系列数据
How to update the series data of piechart(using highchart) through loop in angular
我是 HighCharts 的新手,在 angular 应用程序中实现 highcharts。我正在尝试使用饼图,下面是代码
chartOptions= {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Browser market shares at a specific website, 2014'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
colors: pieColors,
dataLabels: {
enabled: true,
format: '<b>{point.name}</b><br>{point.percentage:.1f} %',
distance: -50,
filter: {
property: 'percentage',
operator: '>',
value: 4
}
}
}
},
series: [{
name: 'Share',
data: [
{ name: 'Chrome', y: 61.41 },
{ name: 'Internet Explorer', y: 11.84 },
{ name: 'Firefox', y: 10.85 },
{ name: 'Safari', y: 4.18 },
{ name: 'Other', y: 7.05 }
]
}]
});
这里我想在调用特定函数时通过循环更新系列数据(例如名称:“Edge”)。那么我该如何实现呢。谁能帮我一下
我不明白你所说的“添加循环”是什么意思,但这是一种添加单个数据点然后更新图表的方法。
在 TS
handleUpdate() {
this.chartOptions.title = { text: 'updated' };
this.chartOptions?.series[0]?.data.push({ name: 'Edge', y: 4.67 });
this.updateFlag = true;
}
在html
<highcharts-chart
[Highcharts]="Highcharts"
[options]="chartOptions"
[(update)]="updateFlag">
</highcharts-chart>```
@csk 这里可以使用update
函数更新系列数据
在HTML文件中
<button onclick="update()">AddOneChart</button>
在ts文件中
const chartOptions = {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Browser market shares at a specific website, 2014'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b><br>{point.percentage:.1f} %'
}
}
},
series: [{
name: 'Share',
data: [
{ name: 'Chrome', y: 61.41 },
{ name: 'Internet Explorer', y: 11.84 },
{ name: 'Firefox', y: 10.85 },
{ name: 'Safari', y: 4.18 },
{ name: 'Other', y: 7.05 }
]
}]
};
const charts = Highcharts.chart('container', chartOptions);
const update = function update() {
chartOptions.series[0].data.push({
name: 'Test',
y: 10.85
});
charts.update(chartOptions, true);
};
我是 HighCharts 的新手,在 angular 应用程序中实现 highcharts。我正在尝试使用饼图,下面是代码
chartOptions= {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Browser market shares at a specific website, 2014'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
colors: pieColors,
dataLabels: {
enabled: true,
format: '<b>{point.name}</b><br>{point.percentage:.1f} %',
distance: -50,
filter: {
property: 'percentage',
operator: '>',
value: 4
}
}
}
},
series: [{
name: 'Share',
data: [
{ name: 'Chrome', y: 61.41 },
{ name: 'Internet Explorer', y: 11.84 },
{ name: 'Firefox', y: 10.85 },
{ name: 'Safari', y: 4.18 },
{ name: 'Other', y: 7.05 }
]
}]
});
这里我想在调用特定函数时通过循环更新系列数据(例如名称:“Edge”)。那么我该如何实现呢。谁能帮我一下
我不明白你所说的“添加循环”是什么意思,但这是一种添加单个数据点然后更新图表的方法。
在 TS
handleUpdate() {
this.chartOptions.title = { text: 'updated' };
this.chartOptions?.series[0]?.data.push({ name: 'Edge', y: 4.67 });
this.updateFlag = true;
}
在html
<highcharts-chart
[Highcharts]="Highcharts"
[options]="chartOptions"
[(update)]="updateFlag">
</highcharts-chart>```
@csk 这里可以使用update
函数更新系列数据
在HTML文件中
<button onclick="update()">AddOneChart</button>
在ts文件中
const chartOptions = {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
title: {
text: 'Browser market shares at a specific website, 2014'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
accessibility: {
point: {
valueSuffix: '%'
}
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b><br>{point.percentage:.1f} %'
}
}
},
series: [{
name: 'Share',
data: [
{ name: 'Chrome', y: 61.41 },
{ name: 'Internet Explorer', y: 11.84 },
{ name: 'Firefox', y: 10.85 },
{ name: 'Safari', y: 4.18 },
{ name: 'Other', y: 7.05 }
]
}]
};
const charts = Highcharts.chart('container', chartOptions);
const update = function update() {
chartOptions.series[0].data.push({
name: 'Test',
y: 10.85
});
charts.update(chartOptions, true);
};