anchor.diff:        prettyString(dataPoint).then((String text) => preElement.text = text);
       });
   
  -    point.onMouseLeave.listen((MouseEvent event) {
  -      DivElement tooltip = querySelector('.tooltip');
  -      PreElement preElement = tooltip.querySelector('pre');
  -      preElement.text = '';
  -    });
       group.append(point);
     }
   
  -  // Create a background rect and insert it before the points.
  +
  +
  +
  +// Create a background rect and insert it before the points.
     svg.RectElement rect = new svg.RectElement();
     rect.attributes = {
       'x': '0',
       'y': '0',
  -    'width': '${maxX.toInt()}',
  -    'height': '${maxY.toInt()}',
  +    'width': '${(maxX - minX).toInt()}',
  +    'height': '${(maxY - minY).toInt()}',
     };
     rect.classes.add('background');
     group.nodes.insert(0, rect);
   
  -  // Adjust the viewport on the parent svg element.
  -  innerSvg.viewport.width = maxX.toInt();
  -  innerSvg.viewport.height = maxY.toInt();
  +// Adjust the viewport on the parent svg element.
  +  innerSvg.viewport.width = (maxX - minX).toInt();
  +  innerSvg.viewport.height = (maxY - minY).toInt();
   }
   
   Future prettyString(Map map) async {
  
positive.code:     maxY = dataPoint['point'][1] > maxY ? dataPoint['point'][1] : maxY;
    }
  
    for (Map dataPoint in data) {
      // Color can be an int (the format of the image package for Dart)
      // or a (hex) string.
  
negative.code:       color = dataPoint['color'];
      }
  
      // Add an area aura
      var aura = _createDataCircle(dataPoint, 25, color, 0.01);
      aura.style.pointerEvents = "None";
      group.append(aura);
  
  
      // Create the circle element
      var point = _createDataCircle(dataPoint, 1, color);
  
      point.onMouseOver.listen((MouseEvent event) {
        DivElement tooltip = querySelector('.tooltip');
  