Column chart: prepareDataFunction

Integration with Highcharts

by Flexmonster Pivot Table

HTML

<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<script src="https://cdn.flexmonster.com/lib/flexmonster.highcharts.js"></script>

<script src="https://code.highcharts.com/12.5.0/highcharts.js"></script>
<script src="https://code.highcharts.com/12.5.0/highcharts-more.js"></script>
<script src="https://code.highcharts.com/12.5.0/modules/accessibility.js"></script>

<div id="pivot-container"></div>
<div id="chartContainer"></div>

CSS

@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);

#chartContainer {
  margin: 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: {
      filename: "data/region-data.json"
    },
    slice: {
      rows: [
        { uniqueName: "Region" }
      ],
      columns: [
        { uniqueName: "[Measures]" }
      ],
      measures: [
        { uniqueName: "Quantity" },
        { uniqueName: "Price" },
        { uniqueName: "Discount" }
      ],
    }
  },
  reportcomplete: function() {
    pivot.off("reportcomplete");
    createColumnWithErrors();
  }
});

function applyConfigs(config) {
  config.chart.style = {
    fontSize: "18px",
    fontFamily: "Arial, sans-serif"
  };
  config.legend =  {
    enabled: false
  }
}

function createColumnWithErrors() {
  pivot.highcharts.getData({
    slice: {
      rows: [{
        uniqueName: "Category"
      }],
      columns: [{
        uniqueName: "[Measures]"
      }],
      measures: [{
          uniqueName: "Price",
          aggregation: "average"
        },
        {
          uniqueName: "MinPrice",
          caption: "Min Price",
          calculated: true,
          formula: "min('Price')"
        },
        {
          uniqueName: "MaxPrice",
          caption: "Max Price",
          calculated: true,
          formula: "max('Price')"
        }
      ]
    },
    prepareDataFunction: function(data, options) {
      let output = {
        chart: {
          type: "column"
        },
        title: {
          text: "Price Deviation"
        },
        subtitle: {
          text: "Column chart with error series"
        },
        xAxis: {
          title: {
            text: data.meta.r0Name
          },
          categories: []
        },
        yAxis: {
          title: {
            text: data.meta.v0Name
         ...