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...