Column chart: xAxisType option

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

let pivot = new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
  toolbar: true,
  report: {
    dataSource: {
      filename: "data/retail-data.json",
      mapping: {
        Date: {
          type: "datetime",
        },
      },
    },
    slice: {
      rows: [
        {
          uniqueName: "Date",
          filter: {
            query: {
              between: ["2019-10-01", "2019-09-05"],
            },
          },
        },
      ],
      columns: [
        {
          uniqueName: "[Measures]",
        },
      ],
      measures: [
        {
          uniqueName: "Price",
          aggregation: "sum",
        },
        {
          uniqueName: "Quantity",
          aggregation: "sum",
        },
      ],
    },
  },
  reportcomplete: function () {
    pivot.off("reportcomplete");
    createChart();
  },
});

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

function createChart() {
  pivot.highcharts.getData(
    {
      type: "column",
      xAxisType: "datetime",
    },
    createAndUpdateChart,
    createAndUpdateChart,
  );
}

function createAndUpdateChart(chartConfig) {
  applyConfigs(chartConfig);

  if (chartConfig.chart == undefined) chartConfig.chart = {};
  chartConfig.chart.zoomType = "x";

  if (chartConfig.series) {
    chartConfig.series[chartConfig.series.length - 1].type = "spline";
  }

  Highcharts.setOptions({
    time: {
      useUTC: false,
      timezoneOffset: -120,
    },
  });
  Highcharts.chart("chartContainer", chartConfig);
}