Skip to main content

A lightweight package for generating visually distinct colours.

Project description

distinctipy logo

distinctipy is a lightweight python package providing functions to generate colours that are visually distinct from one another.

Commonly available qualitative colormaps provided by the likes of matplotlib generally have no more than 20 colours, but for some applications it is useful to have many more colours that are clearly different from one another. distinctipy can generate lists of colours of any length, with each new colour added to the list being as visually distinct from the pre-existing colours in the list as possible.

tests build

Installation

distinctipy is designed for Python 3 and can be installed with pip by running:

pip3 install distinctipy

Alternatively clone the repo and then in its parent directory run:

pip3 install -r requirements.txt
pip3 install .

Usage and Examples

distinctipy can:

  • Generate N visually distinct colours: distinctipy.get_colors(N)
  • Generate colours that are distinct from an existing list of colours: distinctipy.get_colors(N, existing_colors)
  • Generate pastel colours: distinctipy.get_colors(N, pastel_factor=0.7)
  • Select black or white as the best font colour for any background colour: distinctipy.get_text_color(background_color)
  • Convert lists of colours into matplotlib colormaps: distinctipy.get_colormap(colors)
  • Invert colours: distinctipy.invert_colors(colors)
  • Nicely display generated colours: distinctipy.color_swatch(colors)
  • Compare distinctipy colours to other common colormaps: examples.compare_clusters() and examples.compare_colors()
  • Simulate how colours look for someone with colourblindness: colorblind.simulate_colors(colors, colorblind_type='Deuteranomaly')
  • Attempt to generate colours as distinct as possible for someone with colourblindness distinctipy.get_colors(N, existing_colors, colorblind_type="Deuteranomaly")

For example, to create and then display N = 36 visually distinct colours:

from distinctipy import distinctipy

# number of colours to generate
N = 36

# generate N visually distinct colours
colors = distinctipy.get_colors(N)

# display the colours
distinctipy.color_swatch(colors)

More detailed usage and example output can be found in the notebook examples.ipynb and examples gallery.

References

distinctipy was heavily influenced and inspired by several web sources and stack overflow answers. In particular:

Thanks!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

distinctipy-1.1.5.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

distinctipy-1.1.5-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file distinctipy-1.1.5.tar.gz.

File metadata

  • Download URL: distinctipy-1.1.5.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for distinctipy-1.1.5.tar.gz
Algorithm Hash digest
SHA256 b5984f0b1deeda55fffea67b384460a73f39b00c301660edcacd3a0d43219b81
MD5 85b8ec3eec3813d4dda91c6ed6985d69
BLAKE2b-256 622ede00b262a6ccb14ee3411913313290fe02caf0f12cba1a128db5eda51949

See more details on using hashes here.

File details

Details for the file distinctipy-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: distinctipy-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for distinctipy-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6da17e3b18dd766593824c83e3fc8946d3330311de8a9bceb05d835ebbeb636c
MD5 ebe66e48b7d271a8b4aee5dc86a1b498
BLAKE2b-256 58c2045338663266b478e095b4de1edfa945a2fede2193ec1a2ea160d4ebe588

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page