Body
              Zur Darstellung von Anteilen eigenen sich Kreisdiagramme. Damit sie nicht einfach nur erscheinen, sorgt das folgende Script für ein wenig Animation beim Aufbau.
(function() {
  "use strict";
  function ColorValue(color, value) {
    this.color = color;
    this.value = value;
  }
  var drawing = false; // Verhindere gleichzeitigen Aufruf
  
  function draw() {
    var data = [];
    if (drawing) return;
    drawing = true;
    
    data.push(new ColorValue("#382c1a", 10 + parseInt(Math.random()*50)));
    data.push(new ColorValue("#086782", 10 + parseInt(Math.random()*20)));
    data.push(new ColorValue("#cc8722", 10 + parseInt(Math.random()*50)));
    data.push(new ColorValue("#a3a3a3", 10 + parseInt(Math.random()*50)));
    data.push(new ColorValue("#779125", 10 + parseInt(Math.random()*50)));
    data.push(new ColorValue("#ad6600", 10 + parseInt(Math.random()*50)));
    var sum = 0, sumCounter = 0, datalen = data.length, i;
    for (i = 0; i < datalen; i++) {
      sum += data[i].value;
    }
    var center_x = 75, center_y=75, radius = 50, angle1, angle2;
    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    ctx.lineWidth=20;
    ctx.clearRect(0, 0, c.width, c.height);
    function drawNext() {
      sumCounter++;
      angle1 = Math.PI * (0.5 - sumCounter/sum);
      for (i = 0; i < datalen; i++) {
        angle2 = angle1 + (2 * Math.PI * data[i].value * sumCounter / sum / sum);
        ctx.strokeStyle=data[i].color;
        ctx.beginPath();
        ctx.arc(center_x, center_y, radius, angle1, angle2);
        ctx.stroke();
        angle1 = angle2;
      }
      if (sumCounter < sum) {
        window.setTimeout(drawNext, 15);
      } else {
      	drawing = false;
      }
    }
    drawNext();
  }
  
  draw();
  window.myCanvasButton_Redraw = draw;
})();