Bar chart race

by alcosbarco

HTML

<script src="https://cdn.amcharts.com/lib/4/core.js"></script>
<script src="https://cdn.amcharts.com/lib/4/charts.js"></script>
<script src="https://cdn.amcharts.com/lib/4/themes/animated.js"></script>
<div id="div_amchart_rk"></div>

CSS

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: 500px;
}

JavaScript

var chart = am4core.create("div_amchart_rk", am4charts.XYChart);
	chart.padding(40, 40, 40, 40);

	chart.numberFormatter.bigNumberPrefixes = [
	  { "number": 1e+3, "suffix": "K" },
	  { "number": 1e+6, "suffix": "M" },
	  { "number": 1e+9, "suffix": "B" }
	];

	var label = chart.plotContainer.createChild(am4core.Label);
	label.x = am4core.percent(97);
	label.y = am4core.percent(95);
	label.horizontalCenter = "right";
	label.verticalCenter = "middle";
	label.dx = -15;
	label.fontSize = 50;

	var playButton = chart.plotContainer.createChild(am4core.PlayButton);
	playButton.x = am4core.percent(97);
	playButton.y = am4core.percent(95);
	playButton.dy = -2;
	playButton.verticalCenter = "middle";
	playButton.events.on("toggled", function(event) {
	  if (event.target.isActive) {
	    play();
	  }
	  else {
	    stop();
	  }
	})

	var stepDuration = 4000;

	var categoryAxis = chart.yAxes.push(new am4charts.CategoryAxis());
	categoryAxis.renderer.grid.template.location = 0;
	categoryAxis.dataFields.category = "pais";
	categoryAxis.renderer.minGridDistance = 1;
	categoryAxis.renderer.inversed = true;
	categoryAxis.renderer.grid.template.disabled = true;

	var valueAxis = chart.xAxes.push(new am4charts.ValueAxis());
	valueAxis.min = 0;
	valueAxis.rangeChangeEasing = am4core.ease.linear;
	valueAxis.rangeChangeDuration = stepDuration;
	valueAxis.extraMax = 0.1;

	var series = chart.series.push(new am4charts.ColumnSeries());
	series.dataFields.categoryY = "pais";
	series.dataFields.valueX = "MAU";
	series.tooltipText = "{valueX.value}"
	series.columns.template.strokeOpacity = 0;
	series.columns.template.column.cornerRadiusBottomRight = 5;
	series.columns.template.column.cornerRadiusTopRight = 5;
	series.interpolationDuration = stepDuration;
	series.interpolationEasing = am4core.ease.linear;

	var labelBullet = series.bullets.push(new am4charts.LabelBullet())
	labelBullet.label.horizontalCenter = "right";
	labelBullet.label.text =...