Line 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/xy.js"></script>
<script src="https://cdn.amcharts.com/lib/5/themes/Animated.js"></script>
<script src="https://cdn.amcharts.com/lib/5/themes/Kelly.js"></script>
<div id="pivotContainer">The component will appear here</div>
<div id="amcharts-container"></div>
CSS
@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);
#amcharts-container {
margin: 20px 0 20px 0;
height: 400px;
font-size: 15px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
JavaScript
let pivot = new Flexmonster({
container: "pivotContainer",
componentFolder: "https://cdn.flexmonster.com/",
licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
toolbar: true,
height: 400,
report: {
dataSource: {
filename: "data/data.csv",
},
slice: {
rows: [
{
uniqueName: "Country",
filter: {
exclude: ["country.[united kingdom]"],
},
},
],
columns: [
{
uniqueName: "Business Type",
},
{
uniqueName: "[Measures]",
},
],
measures: [
{
uniqueName: "Price",
},
],
},
},
reportcomplete: function () {
pivot.off("reportcomplete");
createChart();
},
});
let chart;
let root;
function createChart() {
pivot.amcharts.getData({}, drawChart, updateChart);
}
function drawChart(chartConfig, rawData) {
root = am5.Root.new("amcharts-container");
const data = chartConfig.data;
root.setThemes([am5themes_Animated.new(root), am5themes_Kelly.new(root)]);
root.numberFormatter.set(
"numberFormat",
pivot.amcharts.getNumberFormatPattern(rawData.meta.formats[0]),
);
const chart = root.container.children.push(
am5xy.XYChart.new(root, { layout: root.verticalLayout }),
);
const yAxis = chart.yAxes.push(
am5xy.ValueAxis.new(root, {
renderer: am5xy.AxisRendererY.new(root, {}),
}),
);
const xRenderer = am5xy.AxisRendererX.new(root, {
cellStartLocation: 0.6,
cellEndLocation: 0.9,
cursorTooltipEnabled: true,
minGridDistance: 20,
});
const xAxis = chart.xAxes.push(
am5xy.CategoryAxis.new(root, {
categoryField: pivot.amcharts.getCategoryName(rawData),
renderer: xRenderer,
tooltip: am5.Tooltip.new(root, {}),
}),
);
xAxis.data.setAll(data);
const series = chart.series.push(
...