InkStitch - data visualization/highcharts-bubble-js-code: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
* https://codepen.io/danielkschneider/pen/NBQjGg
* https://codepen.io/danielkschneider/pen/NBQjGg
HTML:
<source lang="HTML5">
<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>
</source>
JavaScript:


<source lang="javascript">
<source lang="javascript">

Latest revision as of 19:28, 20 August 2018

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' }
    ]
  }]

});