Amcharts V4使用valueYShow以百分比而不是绝对值显示图表



我试图使用AMCharts V4创建一个图表。这些值以绝对值给出,我希望图表以百分比表示:值、y轴等。

文档在这里:https://www.amcharts.com/docs/v4/tutorials/plotting-series-from-calculated-values/

然而,我遇到了一些麻烦。请考虑以下从官方AMCharts文档派生出来的代码:

https://codepen.io/otmezger/pen/RwVzmjv

根据文档建议,我启用了valueAxis.calculateTotals = true;

series.dataFields.valueYShow = "totalPercent";series.dataFields.valueYShow = "percent";线使图形无用。

只有当我禁用它们时,图形才会以绝对数字显示。

我错过了什么?我怎样才能使series.dataFields.valueYShow = "percent";起作用?

如果您想在序列中使用百分比值,则需要将该序列的calculatePercent设置为true,如下所示

series.calculatePercent = true;
series.dataFields.valueYShow = "percent";
series.tooltipText = "{dateX}: [b]{valueY.percent}[/]%";

演示:

// Create chart instance
var chart = am4core.create("chartdiv", am4charts.XYChart);
// Add data
chart.data = [{
"date": new Date(2018, 0, 1),
"value": 10
}, {
"date": new Date(2018, 0, 2),
"value": 15
}, {
"date": new Date(2018, 0, 3),
"value": 2
}];
// Create axes
var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.renderer.grid.template.location = 0;
dateAxis.renderer.minGridDistance = 30;
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
valueAxis.calculateTotals = true;
valueAxis.renderer.labels.template.adapter.add("text", function(text) {
return text + "%";
});

// Create series
var series = chart.series.push(new am4charts.LineSeries());
series.dataFields.valueY = "value";
series.dataFields.dateX = "date";
series.calculatePercent = true;
series.dataFields.valueYShow = "percent";
series.tooltipText = "{dateX}: [b]{valueY.percent}[/]%";
series.strokeWidth = 2;
var bullet = series.bullets.push(new am4charts.CircleBullet());
bullet.circle.stroke = am4core.color("#fff");
bullet.circle.strokeWidth = 2;
// Finish up setting chart up
chart.cursor = new am4charts.XYCursor();
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
#chartdiv {
width: 100%;
height: 250px;
}
<script src="//www.amcharts.com/lib/4/core.js"></script>
<script src="//www.amcharts.com/lib/4/charts.js"></script>
<div id="chartdiv"></div>

最新更新