title: How do I move states in the d3 AlbersUSA projection?
body: <p>I'm using the standard AlbersUSA projection within d3.</p>
  
  <p>The one thing I'm running into though is that since Alaska and Puerto Rico are outside the "rectangle" drawn by the contiguous states, I can't quite maximize my zoom factor to fit within a smaller viewport.</p>
  
  <p>Ideally I'd like to move Puerto Rico below Louisiana and potentially swap places with Hawaii and Alaska, which would give me better bounds to work with.</p>
  
  <p>Looking over the documentation, I see the AlbersUSA composite was created with the following function:</p>
  
  <pre><code>function albersUsa(coordinates) {
    var lon = coordinates[0],
        lat = coordinates[1];
    return (lat &gt; 50 ? alaska
        : lon &lt; -140 ? hawaii
        : lat &lt; 21 ? puertoRico
        : lower48)(coordinates);
  }
  </code></pre>
  
  <p>How can I modify this function (or effectively create my own) so that I can move the states around without having to worry about augmenting the GeoJSON data itself?</p>