code: function(tag, node, controller) {
        var pos = node.pos.getc(true), viz = this.viz, canvas = this.viz.canvas;
        var radius = canvas.getSize();
        var labelPos = {
          x: Math.round(pos.x + radius.width / 2),
          y: Math.round(pos.y + radius.height / 2)
        };
        tag.setAttribute('x', labelPos.x);
        tag.setAttribute('y', labelPos.y);
  
        var bb = tag.getBBox();
        if (bb) {
          // center the label
      var x = tag.getAttribute('x');
      var y = tag.getAttribute('y');
      // get polar coordinates
      var p = node.pos.getp(true);
      // get angle in degrees
      var pi = Math.PI;
      var cond = (p.theta > pi / 2 && p.theta < 3 * pi / 2);
      if (cond) {
        tag.setAttribute('x', x - bb.width);
        tag.setAttribute('y', y - bb.height);
      } else if (node.id == viz.root) {
        tag.setAttribute('x', x - bb.width / 2);
      }
  
      var thetap = cond ? p.theta + pi : p.theta;
      if(node._depth)
        tag.setAttribute('transform', 'rotate(' + thetap * 360 / (2 * pi) + ' ' + x
            + ' ' + y + ')');
    }
  
    controller.onPlaceLabel(tag, node);
  }
docs: /*
  placeLabel
  
  Overrides abstract method placeLabel in <Graph.Plot>.
  
  Parameters:
  
  tag - A DOM label element.
  node - A <Graph.Node>.
  controller - A configuration/controller object passed to the visualization.