Skip to content
Compute Natural Breaks in Python (Fisher-Jenks algorithm)
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
appveyor First commit Sep 13, 2016
jenkspy Create changelog + Prepare for 0.1.5 Nov 14, 2018
tests Handle assertWarns in unittest in python2.7 Nov 14, 2018
.gitignore
.travis.yml stuffs for travis Aug 20, 2018
LICENSE First commit Sep 13, 2016
MANIFEST.in
README.rst update readme Aug 20, 2018
appveyor.yml add python3.7 to CI Aug 20, 2018
setup.py update docstring + readme and setup Aug 22, 2017

README.rst

Fast Jenks breaks for Python

Compute "natural breaks" (Fisher-Jenks algorithm) on list/tuple/numpy.ndarray of integers/floats.

Intented compatibility: CPython 2.7+ and 3.4+

Wheels are provided via PyPI for windows users - Also available on conda-forge channel for Anaconda users

Version Anaconda-Server Badge Build Status travis Build status appveyor

Usage :

>>> import jenkspy
>>> import random
>>> list_of_values = [random.random()*5000 for _ in range(12000)]

>>> breaks = jenkspy.jenks_breaks(list_of_values, nb_class=6)

>>> breaks
    (0.1259707312994962, 1270.571003315598, 2527.460251085392, 3763.0374498649376, 4999.87456576267)

>>> import json
>>> with open('tests/test.json', 'r') as f:
...     data = json.loads(f.read())
...
>>> jenkspy.jenks_breaks(data, nb_class=5)
(0.0028109620325267315, 2.0935479691252112, 4.205495140049607, 6.178148351609707, 8.09175917180255, 9.997982932254672)

Installation

  • From pypi
pip install jenkspy
  • From source
git clone http://github.com/mthh/jenkspy
cd jenkspy/
python setup.py install
  • For anaconda users
conda install -c conda-forge jenkspy

Requirements (only for building from source):

  • C compiler
  • Python C headers

Motivation :

  • Making a painless installing C extension so it could be used more easily as a dependency in an other package (and so learning how to build wheels using appveyor).
  • Getting the break values! (and fast!). No fancy functionnality provided, but contributions/forks/etc are welcome.
  • Other python implementations are currently existing.
You can’t perform that action at this time.