All Projects → alan-turing-institute → distinctipy

alan-turing-institute / distinctipy

Licence: MIT license
A lightweight package for generating visually distinct colours.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to distinctipy

SwiftColorWheel
Delightful color picker wheel for iOS in Swift.
Stars: ✭ 37 (-70.4%)
Mutual labels:  color-palette, colour
Vapeplot
matplotlib extension for vaporwave aesthetics
Stars: ✭ 483 (+286.4%)
Mutual labels:  color-palette, matplotlib
fer
Facial Expression Recognition
Stars: ✭ 32 (-74.4%)
Mutual labels:  matplotlib
tapmap
Command line keyboard heatmap generator.
Stars: ✭ 19 (-84.8%)
Mutual labels:  matplotlib
tcolors
Commandline color picker and palette builder
Stars: ✭ 44 (-64.8%)
Mutual labels:  color-palette
anesthetic
Nested Sampling post-processing and plotting
Stars: ✭ 34 (-72.8%)
Mutual labels:  matplotlib
gpu mandelbrot
Interactive Mandelbrot set on GPU with Python
Stars: ✭ 33 (-73.6%)
Mutual labels:  matplotlib
Algorithmic-Trading
Algorithmic trading using machine learning.
Stars: ✭ 102 (-18.4%)
Mutual labels:  matplotlib
python-data-visualization
Curated Python Notebooks for Data Visualization
Stars: ✭ 22 (-82.4%)
Mutual labels:  matplotlib
palettify
Configurable JavaScript plugin to extract image primary colors and apply cool effects to it.
Stars: ✭ 18 (-85.6%)
Mutual labels:  color-palette
scivision
scivision: a framework for scientific image analysis
Stars: ✭ 60 (-52%)
Mutual labels:  hut23
hh research
Автоматизация поиска и исследования вакансий с сайта hh.ru (Headhunter) с помощью методов Python. Классификация данных, поиск статистических параметров.
Stars: ✭ 36 (-71.2%)
Mutual labels:  matplotlib
logplot
Awesome interactive plots from custom logs
Stars: ✭ 25 (-80%)
Mutual labels:  matplotlib
mpl-probscale
Real probability scales for matplotlib
Stars: ✭ 27 (-78.4%)
Mutual labels:  matplotlib
heatmaps
Better heatmaps in Python
Stars: ✭ 117 (-6.4%)
Mutual labels:  matplotlib
Singularis
My System Configuration ⚙️
Stars: ✭ 27 (-78.4%)
Mutual labels:  matplotlib
matplotlib-4-abaqus
allow abaqus(v6.14-1) to use matplotlib in its build-in python scripts environment.
Stars: ✭ 32 (-74.4%)
Mutual labels:  matplotlib
ColorPicker
Powerful screen ColorPicker/Chooser application for Linux Desktop
Stars: ✭ 55 (-56%)
Mutual labels:  color-palette
colour-nuke
Colour - Nuke
Stars: ✭ 145 (+16%)
Mutual labels:  colour
Udacity-Data-Analyst-Nanodegree
Repository for the projects needed to complete the Data Analyst Nanodegree.
Stars: ✭ 31 (-75.2%)
Mutual labels:  matplotlib

distinctipy logo

tests build codecov DOI Documentation Status

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.

Installation

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

python -m pip install distinctipy

Alternatively clone the repo and install it locally:

git clone https://github.com/alan-turing-institute/distinctipy.git
cd distinctipy
python -m pip install .

Optional Dependencies

Starting in version 1.2.1 distinctipy no longer bundles matplotlib, pandas or dev dependencies in the default installation. If you wish to view colours (e.g. with distinctipy.color_swatch) or examples you will need matplotlib and pandas installed. To do this, either install distinctipy with the optional flag:

python -m pip install distinctipy[optional]

Or install them separately:

python -m pip install matplotlib pandas

For developers, to install the stack needed to run tests, generate docs etc. use the [all] flag:

python -m pip install distinctipy[all]

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:

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:

Citing distinctipy

If you would like to cite distinctipy, please refer to the upload of the package on Zenodo: https://doi.org/10.5281/zenodo.3985191

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].