Skip to content

A package that provides iterators for distinct colors. Visit the documentation for more info

License

Notifications You must be signed in to change notification settings

j-i-l/ColorSequence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ColorSequence

A package to provide distinct colors.

The idea behind this package is to generate colours from the HSV-colorspace by generation evenly distributed values in each dimension (hue, saturation, value).

The package uses the golden angle to create evenly distributed values in the range of values you specify.

You can either create a list of colors or a generator that will allow you to continuously draw new distinct colors.

docs/_static/HSV_color_cylinder_small.png

HSV-colorspace: A specific color is determined by the triple hue, saturation and value, each takes a value within [0, 1]. source: wikipedia

Simple example

docs/_static/scatter_plot.png
from matplotlib import pyplot as plt
from colorseq import DistinctColors

dc_h = DistinctColors(20, (0.0, 1.0), 1.0, 1.0)
dc_s = DistinctColors(20, 0.4, (0.1, 1.0), 1.0)
dc_v = DistinctColors(20, 0.4, 1.0, (0.1, 1.0))
dc_comb = DistinctColors(
        20, (0.0, 1.0), (0.1, 1.0), (0.7, 1.0),
        h_shuffle=True, s_shuffle=True, v_shuffle=True
        )
colors_h = dc_h.get_colors()
colors_s = dc_s.get_colors()
colors_v = dc_v.get_colors()
colors_comb = dc_comb.get_colors()
fig, ax = plt.subplots()
ax.scatter(
        [*range(20)], [2 for _ in range(20)], s=200.0,
        c=colors_comb, marker='v', label='combined'
        )
ax.scatter(
        [*range(20)], [1.5 for _ in range(20)], s=200.0,
        c=colors_v, marker='s', label='value'
        )
ax.scatter(
        [*range(20)], [0.5 for _ in range(20)],
        s=200.0, c=colors_s, marker='<', label='saturation'
        )
ax.scatter(
        [*range(20)], [0 for _ in range(20)], s=200.0,
        c=colors_h, label='hue'
        )
ax.legend(loc='best', numpoints=4)
plt.show()

You can find the script here.

Installation

You can get the latest version with

pip install --upgrade --no-deps git+https://github.com/j-i-l/ColorSequence.git

Documentation

http://colorsequence.rtfd.io/

About

A package that provides iterators for distinct colors. Visit the documentation for more info

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages