Integration with ECharts
Other charting libraries
by Flexmonster Pivot Table
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.0.4/echarts.min.js"></script>
<div id="pivot-container"></div>
<div id="chart-container"></div>
CSS
@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);
#chart-container {
height: 400px;
width: 100%;
}
JavaScript
let pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
report: {
dataSource: {
dataSourceType: "csv",
filename: "data/data.csv",
},
slice: {
rows: [
{
uniqueName: "Category",
filter: {
exclude: ["Cars"],
},
},
],
measures: [
{
uniqueName: "Price",
aggregation: "sum",
},
],
},
options: {
grid: {
showHeaders: false,
},
},
},
height: 300,
toolbar: true,
reportcomplete: function () {
pivot.off("reportcomplete");
createChart();
},
});
function createChart() {
pivot.getData({}, drawChart, updateChart);
}
function prepareDataFunction(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; //taking only facts for this sample
let _record = {
member: record.r0,
value: !isNaN(record.v0) ? record.v0 : 0,
};
data.push(_record);
}
return data;
}
function drawChart(rawData) {
// based on prepared DOM, initialize echarts instance
let myChart = echarts.init(document.getElementById("chart-container"));
let data = prepareDataFunction(rawData);
// specify chart configuration item and data
let option = {
tooltip: {},
xAxis: {
data: data.map(function (d) {
return d.member;
}),
axisLabel: {
fontSize: 15,
},
},
yAxis: {
axisLabel: {
fontSize: 14,
},
},
series: [
{
name: "Category",
type: "bar",
data: data.map(function (d) {
return d.value;
}),
},
],
};
// use configuration item...