InkStitch - data visualization/highcharts-bubble-js-code

The educational technology and digital learning wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

HTML:

<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>

<div id="container" style="height: 128mm; width: 178mm;border:1px solid red"></div>


JavaScript:

// This was made to create SVG for embroidery with InkStitch
// See: https://edutechwiki.unige.ch/en/InkStitch_-_data_visualization

Highcharts.chart('container', {

  chart: {
    type: 'bubble',
    plotBorderWidth: 2,
    zoomType: 'xy',
    spacingTop: 20,
    width: 670, //pixels only. That will be DPI dependant.
    height: "72%"
  },

  legend: {
    enabled: false
  },
 

  title: {
    align: "left",
    widthAjust: 0,
    text: 'SUGAR, FAT INTAKE, OBESITY',
    style: {"fontSize":"27pt","fontWeight":"bold", "color": "black"}
  },

 // subtitle: {
   // text: 'Source: <a href="http://www.euromonitor.com/">Euromonitor</a> and <a href="https://data.oecd.org/">OECD</a>'
  //},

  xAxis: {
    startOnTick: false,
    endOnTick: false,
    // minTickInterval: 15,
    tickAmount: 4,
    max:95,
    gridLineWidth: 1,
    lineColor: "black",
    title: {
      text: 'DAILY FAT',
      margin: 20,
      style: {"fontSize":"24pt", "fontWeight":"bold", "color": "black"}
    },
    labels: {
      // padding: 10,
      align: "center",
      format: '{value} G',
      style: {
        fontSize:"20pt",
        fontWeight:"bold",
        color:"red"
      }
    },
    plotLines: [{
      color: 'red',
      dashStyle: 'dot',
      width: 2,
      value: 65,
      label: {
        rotation: 0,
        y: 15,
        style: {
          fontWeight: 'bold',
          fontSize:"20pt",
          color:"red"
        },
        text: 'SAFE FAT - 65 G/DAY'
      },
      zIndex: 3
    }]
  },

  yAxis: {
    startOnTick: false,
    endOnTick: false,
    tickAmount: 4,
    lineColor: "black",
    gridLineColor: "black",
    title: {
      text: 'DAILY SUGAR',
      style: {"fontSize":"24pt", "fontWeight":"bold", "color": "black","whiteSpace":'nowrap'}
    },
    labels: {
      format: '{value} G',
      style: {
        fontSize:"20pt",
        fontWeight: "bold",
        color:"red"
      }
    },
    maxPadding: 0.2,
    plotLines: [{
      color: 'red',
      dashStyle: 'dot',
      width: 2,
      value: 50,
      label: {
        align: 'right',
        style: {
          fontWeight: 'bold',
          fontSize:"20pt",
          color:"red"
        },
        text: 'SAFE SUGAR - 50 G/DAY',
        x: -10
      },
      zIndex: 3
    }]
  },

  tooltip: {
    useHTML: true,
    headerFormat: '<table>',
    pointFormat: '<tr><th colspan="2"><h3>{point.country}</h3></th></tr>' +
      '<tr><th>Fat intake:</th><td>{point.x}g</td></tr>' +
      '<tr><th>Sugar intake:</th><td>{point.y}g</td></tr>' +
      '<tr><th>Obesity (adults):</th><td>{point.z}%</td></tr>',
    footerFormat: '</table>',
    followPointer: true
  },

  plotOptions: {
    series: {
      dataLabels: {
        enabled: true,
        format: '{point.name}'
      }
    },
       bubble: {minSize:"5%", maxSize:"25%"}
  },

  series: 
    
  [{
    dataLabels: {
      allowOverlap: true,
      style: {
        fontSize:"20pt",
        color: "blue",
        fontWeight: "bold",
        textOutline: "0px"
      }
    },
    data: [
      { x: 95, y: 95, z: 13.8, name: 'BE', country: 'Belgium' },
      { x: 86.5, y: 102.9, z: 14.7, name: 'DE', country: 'Germany' },
      { x: 80.8, y: 91.5, z: 15.8, name: 'FI', country: 'Finland' },
      { x: 80.4, y: 102.5, z: 12, name: 'NL', country: 'Netherlands' },
      { x: 80.3, y: 86.1, z: 11.8, name: 'SE', country: 'Sweden' },
      { x: 78.4, y: 70.1, z: 16.6, name: 'ES', country: 'Spain' },
      { x: 74.2, y: 68.5, z: 14.5, name: 'FR', country: 'France' },
      { x: 73.5, y: 83.1, z: 10, name: 'NO', country: 'Norway' },
      { x: 71, y: 93.2, z: 24.7, name: 'UK', country: 'United Kingdom' },
      { x: 69.2, y: 57.6, z: 10.4, name: 'IT', country: 'Italy' },
      { x: 68.6, y: 20, z: 16, name: 'RU', country: 'Russia' },
      { x: 65.5, y: 126.4, z: 35.3, name: 'US', country: 'United States' },
      { x: 65.4, y: 50.8, z: 28.5, name: 'HU', country: 'Hungary' },
      { x: 63.4, y: 51.8, z: 15.4, name: 'PT', country: 'Portugal' },
      { x: 64, y: 82.9, z: 31.3, name: 'NZ', country: 'New Zealand' }
    ]
  }]

});