Pie chart
Integration with amCharts 4
by Flexmonster Pivot Table
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<script src="https://cdn.flexmonster.com/lib/flexmonster.amcharts.js"></script>
<script src="https://cdn.amcharts.com/lib/4/core.js"></script>
<script src="https://cdn.amcharts.com/lib/4/charts.js"></script>
<div id="pivotContainer">The component will appear here</div>
<div id="chartContainer"></div>
CSS
@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);
#chartContainer {
margin: 20px;
height: 300px;
}
JavaScript
const pivot = new Flexmonster({
container: "pivotContainer",
componentFolder: "https://cdn.flexmonster.com/",
licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
height: 330,
report: {
dataSource: {
filename: "data/data.csv"
},
slice: {
rows: [
{
uniqueName: "Country"
}
],
columns: [
{
uniqueName: "Color"
},
{
uniqueName: "[Measures]"
}
],
measures: [
{
uniqueName: "Price",
format: "currency"
}
]
},
},
reportcomplete: function() {
pivot.off("reportcomplete");
createChart();
}
});
let chart;
function createChart() {
pivot.amcharts.getData({}, drawChart, updateChart);
}
function drawChart(chartConfig, rawData) {
// Initialize the chart
chart = am4core.create("chartContainer", am4charts.PieChart);
// Fill the chart with the data from Flexmonster
chart.data = chartConfig.data;
// Create and configure pie series
let series = chart.series.push(new am4charts.PieSeries());
series.dataFields.category = pivot.amcharts.getCategoryName(rawData);
series.dataFields.value = pivot.amcharts.getMeasureNameByIndex(rawData, 0);
series.slices.template.stroke = am4core.color("#fff");
series.slices.template.strokeWidth = 2;
series.labels.template.fontSize = 15;
}
function updateChart(chartConfig, rawData) {
chart.dispose();
drawChart(chartConfig, rawData);
}