以下是使用AmCharts 4显示聚类和堆叠图表的总计的代码示例:
首先,在HTML文件中添加必要的标签和容器:
然后,在JavaScript文件中编写AmCharts 4的代码:
// 创建一个图表实例
var chart = am4core.create("chartdiv", am4charts.XYChart);
// 设置主题
chart.colors.list = [
am4core.color("#845EC2"),
am4core.color("#D65DB1"),
am4core.color("#FF6F91"),
am4core.color("#FF9671"),
am4core.color("#FFC75F"),
];
// 设置数据
chart.data = [{
"category": "A",
"value1": 5,
"value2": 8
}, {
"category": "B",
"value1": 7,
"value2": 10
}, {
"category": "C",
"value1": 3,
"value2": 6
}, {
"category": "D",
"value1": 2,
"value2": 4
}];
// 创建类别轴
var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());
categoryAxis.dataFields.category = "category";
categoryAxis.renderer.grid.template.location = 0;
// 创建值轴
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
// 创建堆叠柱状图系列
var series1 = chart.series.push(new am4charts.ColumnSeries());
series1.dataFields.valueY = "value1";
series1.dataFields.categoryX = "category";
series1.name = "Series 1";
series1.columns.template.tooltipText = "{name}: [bold]{valueY}[/]";
series1.stacked = true;
// 创建聚类柱状图系列
var series2 = chart.series.push(new am4charts.ColumnSeries());
series2.dataFields.valueY = "value2";
series2.dataFields.categoryX = "category";
series2.name = "Series 2";
series2.columns.template.tooltipText = "{name}: [bold]{valueY}[/]";
series2.stacked = true;
// 添加图例
chart.legend = new am4charts.Legend();
// 添加总计标签
var totalLabel = chart.plotContainer.createChild(am4core.Label);
totalLabel.text = "总计:";
totalLabel.align = "right";
totalLabel.valign = "middle";
totalLabel.marginRight = 20;
totalLabel.fontSize = 20;
// 计算总计值
var totalValue = 0;
for (var i = 0; i < chart.data.length; i++) {
totalValue += chart.data[i].value1 + chart.data[i].value2;
}
// 更新总计标签的值
chart.events.on("ready", function() {
totalLabel.text += totalValue;
});
最后,通过在浏览器中打开HTML文件,您将能够看到聚类和堆叠图表,以及显示总计的总计标签。
请注意,上述代码需要引入AmCharts 4的核心库、图表库和动画主题库。