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

**URL:** <https://discourse.julialang.org/t/ann-domaincoloring-toy-jl-smooth-complex-plotting/102080>\
**Category:** Package Announcements\
**Tags:** plotting, teaching, makie, glmakie, complex-numbers\
**Created:** [July 25, 2023, 2:08pm UTC](https://discourse.julialang.org/t/ann-domaincoloring-toy-jl-smooth-complex-plotting/102080 "2023-07-25T14:08:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![eprovst](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eprovst/32/50943_2.png) [@eprovst](https://discourse.julialang.org/u/eprovst)\
**Post date:** [July 25, 2023, 2:08pm UTC](https://discourse.julialang.org/t/ann-domaincoloring-toy-jl-smooth-complex-plotting/102080/1 "2023-07-25T14:08:36Z")

</div>

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](https://global.discourse-cdn.com/julialang/original/3X/8/6/86d1d22ce7c31172de93100f7b6982ede618de25.png)

`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](https://eprovst.github.io/DomainColoring.jl/stable/) 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.

---

<div class="post-metadata">

**Author:** ![DrPapa](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/drpapa/32/6835_2.png) [@DrPapa](https://discourse.julialang.org/u/DrPapa)\
**Post date:** [July 26, 2023, 1:33pm UTC](https://discourse.julialang.org/t/ann-domaincoloring-toy-jl-smooth-complex-plotting/102080/2 "2023-07-26T13:33:26Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![eprovst](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eprovst/32/50943_2.png) [@eprovst](https://discourse.julialang.org/u/eprovst)\
**Post date:** [August 15, 2023, 5:04pm UTC](https://discourse.julialang.org/t/ann-domaincoloring-toy-jl-smooth-complex-plotting/102080/3 "2023-08-15T17:04:33Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)\
**Post date:** [August 15, 2023, 5:12pm UTC](https://discourse.julialang.org/t/ann-domaincoloring-toy-jl-smooth-complex-plotting/102080/4 "2023-08-15T17:12:59Z")

</div>

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