import * as am5 from "@amcharts/amcharts5"; import * as am5xy from "@amcharts/amcharts5/xy"; import * as am5radar from "@amcharts/amcharts5/radar"; import am5themes_Animated from "@amcharts/amcharts5/themes/Animated"; // Create root element // https://www.amcharts.com/docs/v5/getting-started/#Root_element const root = am5.Root.new("chartdiv"); // 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/radar-chart/ const chart = root.container.children.push(am5radar.RadarChart.new(root, { panX: false, panY: false, wheelX: "panX", wheelY: "zoomX" })); // Add cursor // https://www.amcharts.com/docs/v5/charts/radar-chart/#Cursor const cursor = chart.set("cursor", am5radar.RadarCursor.new(root, { behavior: "zoomX" })); cursor.lineY.set("visible", false); // Create axes and their renderers // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes const xRenderer = am5radar.AxisRendererCircular.new(root, {}); xRenderer.labels.template.setAll({ radius: 10 }); const xAxis = chart.xAxes.push(am5xy.CategoryAxis.new(root, { maxDeviation: 0, categoryField: "category", renderer: xRenderer, tooltip: am5.Tooltip.new(root, {}) })); const yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, { renderer: am5radar.AxisRendererRadial.new(root, {}) })); // Create series // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series const series = chart.series.push(am5radar.RadarLineSeries.new(root, { name: "Series", xAxis: xAxis, yAxis: yAxis, valueYField: "value", categoryXField: "category", tooltip: am5.Tooltip.new(root, { labelText: "{valueY}" }) })); series.bullets.push(() => { return am5.Bullet.new(root, { sprite: am5.Circle.new(root, { radius: 5, fill: series.get("fill") }) }); }); // Add scrollbars chart.set("scrollbarX", am5.Scrollbar.new(root, { orientation: "horizontal" })); chart.set("scrollbarY", am5.Scrollbar.new(root, { orientation: "vertical" })); // Generate and set data // https://www.amcharts.com/docs/v5/charts/radar-chart/#Setting_data let i = -1; let value = 10; function generateData() { value = Math.round((Math.random() * 4 - 2) + value); i++; return { category: "cat" + i, value: value }; } function generateDatas(count) { const data = []; for (let i = 0; i < count; ++i) { data.push(generateData()); } return data; } let data = generateDatas(12); series.data.setAll(data); xAxis.data.setAll(data); // Animate chart and series in // https://www.amcharts.com/docs/v5/concepts/animations/#Forcing_appearance_animation series.appear(1000); chart.appear(1000, 100);