title: Fire zoom event (or simulate zoom event)
body: <p>When I zoom with the mouse, the following function attached to <code>myZoom</code> will be executed:</p>
  
  <pre><code>myZoom.on('zoom', function() {
  
      someElement.attr('transform', 'translate(' + d3.event.translate[0] + ',' + d3.event.translate[1] + ') scale(' + d3.event.scale + ')');
  
  ....
  // redraw axes, which should stay where they are at.
  ....
  
  }
  </code></pre>
  
  <p>To simulate zoom without mouse or some other pointing device, I can just change the value of the attribute 'transform' above. Easy.</p>
  
  <p>But problem is in this function I actually redraw axes, whose scale is automatically recalculated. Refer to this official documentation from d3:</p>
  
  <blockquote>
    <h1>zoom.y([y])</h1>
    
    <p>Specifies an y-scale whose domain should be automatically adjusted
    when zooming. If not specified, returns the current y-scale, which
    defaults to null. If the scale's domain is modified programmatically,
    it should be reassigned to the zoom behaviour.</p>
  </blockquote>
  
  <p>I need to zoom programmatically (maybe with zoom button). How can I fire zoom event, so that scale of my axes is automatically recalculated?</p>