code: function jenks(data, n_classes) {
  
          if (n_classes > data.length) return null;
  
          // sort data in numerical order, since this is expected
          // by the matrices function
          data = data.slice().sort(function (a, b) { return a - b; });
  
          // get our basic matrices
          var matrices = jenksMatrices(data, n_classes),
              // we only need lower class limits here
              lower_class_limits = matrices.lower_class_limits;
  
          // extract n_classes out of the computed matrices
          return jenksBreaks(data, lower_class_limits, n_classes);
  
      }
docs: # [Jenks natural breaks optimization](http://en.wikipedia.org/wiki/Jenks_natural_breaks_optimization)  Implementations: [1](http://danieljlewis.org/files/2010/06/Jenks.pdf) (python), [2](https://github.com/vvoovv/djeo-jenks/blob/master/main.js) (buggy), [3](https://github.com/simogeo/geostats/blob/master/lib/geostats.js#L407) (works)  Depends on `jenksBreaks()` and `jenksMatrices()`