Integration with ApexCharts: Area chart
Other charting libraries
by Flexmonster Pivot Table
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
<div id="pivot-container"></div>
<div id="chartContainer"></div>
CSS
@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);
#chartContainer {
margin-top: 20px;
}
JavaScript
const pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
height: 350,
toolbar: true,
report: {
dataSource: {
dataSourceType: "csv",
filename: "data/data.csv",
},
slice: {
rows: [
{
uniqueName: "Country",
},
],
columns: [
{
uniqueName: "[Measures]",
},
],
measures: [
{
uniqueName: "Price",
},
],
},
},
reportcomplete: function () {
pivot.off("reportcomplete");
createChart();
},
});
function createChart() {
pivot.getData({}, drawChart, updateChart);
}
function prepareData(rawData) {
let data = [];
for (let i = 0; i < rawData.data.length; i++) {
let record = rawData.data[i];
if (record["r0"] == undefined || record["v0"] == undefined) continue;
let formattedRecord = {
x: record["r0"],
y: !isNaN(record["v0"]) ? record["v0"] : 0,
};
data.push(formattedRecord);
}
return data;
}
let chart;
function drawChart(rawData) {
// prepareData() transforms data to the format needed by the charting library
const data = prepareData(rawData);
// Name of the first measure in the slice
const measureName = rawData.meta.v0Name;
const options = {
chart: {
height: 400,
type: "area",
},
series: [
{
name: measureName,
data: data,
},
],
dataLabels: {
enabled: false,
},
xaxis: {
labels: {
style: {
fontSize: "14px",
},
},
},
yaxis: {
labels: {
style: {
fontSize: "14px",
},
},
},
};
chart = new ApexCharts(document.querySelector("#chartContainer"), options);
chart.render();
}
function...