Pie chart
Integration with amCharts 5
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/5/index.js"></script>
<script src="https://cdn.amcharts.com/lib/5/percent.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 {
height: 350px;
}
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"
}
]
},
},
reportcomplete: function() {
pivot.off("reportcomplete");
createChart();
}
});
// Create and initialize the root element
const root = am5.Root.new("chartContainer");
function createChart() {
pivot.amcharts.getData({}, drawChart, updateChart);
}
function drawChart(chartConfig, rawData) {
// Create the chart
let chart = root.container.children.push(
am5percent.PieChart.new(root, {})
);
// Create and configure pie series
let series = chart.series.push(
am5percent.PieSeries.new(root, {
valueField: pivot.amcharts.getMeasureNameByIndex(rawData, 0),
categoryField: pivot.amcharts.getCategoryName(rawData),
})
);
series.slices.template.setAll({
stroke: am5.color("#fff"),
strokeWidth: 2,
});
series.labels.template.setAll({
fontSize: 15
});
// Fill the chart with the data from Flexmonster
series.data.setAll(chartConfig.data);
}
function updateChart(chartConfig, rawData) {
root.container.children.clear();
drawChart(chartConfig, rawData);
}