[ANN] DomainColoring(Toy).jl – Smooth Complex Plotting

In complex analysis, one can gain much intuition by looking at visual representations of phase, magnitude, etc. Phase plots, domain colorings, and other kinds of plots are hence useful tools, such as demonstrated in the book by Wegert [1]. Unfortunately, most implementations of these plots use colorwheels with poor perceptual properties, producing false artefacts and/or hiding details [2]. To make matters worse, rainbow colormaps are also illegible to those with color vision deficiency.

DomainColoring.jl attempts to remedy these issues by using carefully constructed colormaps, including plots specifically designed for color vision deficiency, whilst incorporating a growing selection of different kinds of plots with intuitive function signatures, making it easy to create complete domain colorings with ease. For example, domaincolor(z -> im*z^3-1, 2.5, logabs=true, grid=true) gives:

rootsofunity

DomainColoringToy.jl is an extension package exporting the same functions with identical signatures, but adding interactivity via GLMakie.

For both, particular attention is given to documentation and tutorials to make them viable options to use in teaching. Talking of which, the documentation is a good place to start if interested!


  1. Wegert, Elias. Visual Complex Functions: An Introduction with Phase Portraits. BirkhΓ€user Basel, 2012.
  2. Crameri, F., Shephard, G.E. & Heron, P.J. The misuse of colour in science communication. Nat Commun 11, p. 5444, 2020.
21 Likes

This great! Thank you for putting this together and for considering the needs of people with color deficiencies.

1 Like

Note: starting from v0.4, the example would be produced by domaincolor(z -> im*z^3-1, 2.5, abs=true, grid=true).

Super cool! I already love the calendars by Elias Wegert and his book; having a package for that is really nice!

1 Like