import React, { Component } from "react"; import * as am5 from "@amcharts/amcharts5"; import am5themes_Animated from "@amcharts/amcharts5/themes/Animated"; import * as am5percent from "@amcharts/amcharts5/percent"; class Donut1 extends Component { componentDidMount() { let root = am5.Root.new("Donut1"); root._logo.dispose(); // Set themes // https://www.amcharts.com/docs/v5/concepts/themes/ root.setThemes([am5themes_Animated.new(root)]); // Create chart // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/ let chart = root.container.children.push( am5percent.PieChart.new(root, { layout: root.verticalLayout, innerRadius: am5.percent(50), }) ); // Create series // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/#Series let series = chart.series.push( am5percent.PieSeries.new(root, { valueField: "value", categoryField: "category", }) ); // Set data // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/#Setting_data series.data.setAll([ { value: 50, category: "A복지관" }, { value: 20, category: "B복지관" }, { value: 30, category: "C복지관" }, { value: 40, category: "D복지관" }, { value: 10, category: "E복지관" }, ]); // Create legend // https://www.amcharts.com/docs/v5/charts/percent-charts/legend-percent-series/ let legend = chart.children.push( am5.Legend.new(root, { centerX: am5.percent(50), x: am5.percent(50), marginTop: 15, marginBottom: 15, }) ); legend.data.setAll(series.dataItems); // Play initial series animation // https://www.amcharts.com/docs/v5/concepts/animations/#Animation_of_series series.appear(1000, 100); this.root = root; } componentWillUnmount() { if (this.root) { this.root.dispose(); } } render() { return
; } } export default Donut1;