Pyramid chart

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/funnel.js"></script>
<script src="https://code.highcharts.com/12.5.0/modules/accessibility.js"></script>

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

CSS

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

JavaScript

let pivot = new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
  toolbar: true,
  height: 400,
  report: {
    dataSource: {
      filename: "data/retail-data.json",
    },
    slice: {
      rows: [
        {
          uniqueName: "Country",
          filter: {
            members: [
              "country.[ukraine]",
              "country.[switzerland]",
              "country.[norway]",
              "country.[japan]",
              "country.[canada]",
              "country.[denmark]",
            ],
          },
        },
      ],
      columns: [
        {
          uniqueName: "[Measures]",
        },
      ],
      measures: [
        {
          uniqueName: "Quantity",
        },
      ],
    },
  },
  reportcomplete: function () {
    pivot.off("reportcomplete");
    createChart();
  },
});

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

  config.colors = [
    "#b1cfb7",
    "#efd9aa",
    "#efba93",
    "#b3d9e1",
    "#ffccc3",
    "#d7c2d8",
  ];

  config.plotOptions = config.plotOptions || {};
  config.plotOptions.pyramid = {
    dataLabels: {
      enabled: true,
      inside: true,
      style: {
        fontSize: "14px",
        fontFamily: "Arial, sans-serif",
      },
    },
  };
}

function createChart() {
  pivot.highcharts.getData(
    {
      type: "pyramid",
    },
    function (chartConfig) {
      applyConfigs(chartConfig);
      Highcharts.chart("highcharts-container", chartConfig);
    },
    function (chartConfig) {
      applyConfigs(chartConfig);
      Highcharts.chart("highcharts-container", chartConfig);
    },
  );
}