# 1. Introduction

Example. Below are two plots of the function f (z) = sin(z3−1) / z :

• An ordinary real plot y = f (x) from x = −3 to x = +3.
• A "domain coloring" complex plot over a square in the complex plane (lower left corner z = −3−3i, upper right z = +3+3i). Each point z is colored according to the value of f (z).

Virtually all information in the real plot can be read off from just the middle horizontal line z = x+0i in the complex plot (once you learn how to interpret it). But the complex plot also reveals new phenomena that can't be seen in the real plot.

# 2. Main text: Visualizing complex analytic functions using domain coloring

## Select version here:

(About 50 kB text + 2.5 MB images, so it will take a while if you have a slow Internet connection.)

The HTML files are produced with the TtH TeX-to-HTML translator, which uses symbol fonts to render mathematical characters. The versions differ in how the math symbols are encoded. See the TtH manual for details.

You can also get the LaTeX source and a typeset DVI version (without the images).

# 3. Supplementary material

## Additional domain coloring plots by me

Slides in Swedish from a talk:

## References

### Books

There are lots and lots of books about complex analysis. Here are a few that I can recommend:

And of particular interest to visitors of this site:

### Internet

The first web page I saw on domain coloring was the one by Frank Farris, who also coined the term. There he shows the idea, but his pictures are a little primitive. Other people, including me of course, have tried to make better pictures. Here are some that I am aware of (in no particular order):

• Larry Crone, who in September 2002 informed me that he has been using domain coloring for 15 years already. On his web site you will find not only the standard functions that everybody plots, but also some interesting images of complicated meromorphic functions called "G functions".
• Another early example is the paper "Conformal Image Warping" (PDF file) by Carl Frederick and Erik L. Schwartz, IEEE Computer Graphics and Applications, March 1990.
• Cleve Moler (in the supplement there is a MATLAB file zviz.m producing very neat pictures).
• George Abdo and Paul Godfrey.
• Jan Hlavacek has a gallery with many interesting images: modular functions, Riemann zeta function, etc.
• G. A. Edgar.
• Bernd Thaller, with a Mathematica package ComplexPlot.m for making color plots of complex functions. Also nice visualizations of examples from Quantum Mechanics.
• John L. Richardson.
• François Labelle. More nice pictures of the Taylor polynomials of ez, plus the Riemann zeta function and the iteration leading to the Mandelbrot set.
• Michael J. Gruber, with a Python-Fu plugin conformal.py for GIMP, which gives access to Python's powerful features from within GIMP, in particular the special functions module from SciPy. Illustrated with Green's functions for Schrödinger operators.
• Platonic tilings of Riemann surfaces by Gerard Westendorp. Color plots of automorphic functions, among lots of other pretty graphics.
• Gallery of plots made with the very impressive Python multi-precision library mpmath written by Fredrik Johansson. Color plots of Airy, Bessel, theta functions, along with the Riemann zeta function and more.
• John E. Davis with plots produced by a script written in his programming language S-Lang.

Real-Time Zooming Math Engine (rtzme) by Zoltán Kovács is a program for making domain coloring plots, with particular emphasis on speed; it uses the fast zooming algorithm developed for the well-known fractal software XaoS. A binary for SuSE Linux is available, as well as the source code, which Zoltán says should be possible to compile under Windows too.

Thomas Baruchel in France (English page here) has written a Fortran program fplot.f90 which computes a domain coloring plot and saves it to a PNM image file. Here are some images.

Cardano3 is a Mathematica add-on package which can do all kinds of complex function graphics. It can be purchased from its author, David Park.

A C++ program called f(z) for different visualization techniques, and supporting a large number of special functions, is under development by Tom Bachmann. It uses the cairo, gtkmm and boost libraries, and optionally slatec, and you will need to get the source code using Mercurial and compile it yourself if you want to try it out.

Domkol is an HTML5/Javascript/SVG/Canvas/JQuery application by Philip Dorrell which runs in your web browser and displays a domain coloring plot of a cubic polynomial; you can interactively change the location of the zeros. (Works best in the Chrome/Chromium browser.)

• Bombelli, a powerful viewer for complex functions, written in Java.
• A smaller Java program by Keith Orpen and Djun M. Kim, faster than Bombelli but much less general (knows only exp, sin, and cos). Still pretty neat, and with the source code available.
• And another Java applet by Matti Paalanen, also open source.

Complex Analysis Project at California State University Fullerton has lots of material, both in traditional textbook style and for computer exploration.

Robert Liebo at TU Wien has written a Master's Thesis, Visualization of Complex Function Graphs in Augmented Reality, which is available as a PDF file.

The beautiful video Möbius Transformations Revealed by Douglas Arnold and Jonathan Rogness was an unexpected hit on YouTube during the second half of 2007.

Architecture student Daniel Piker has some interesting ideas on how to to use of complex mappings to design buildings. See his essay on Rheotomic surfaces, which has lots of nice pictures and animations.

Elias Wegert at Technische Universität Bergakademie Freiberg has written a very interesting paper Phase Plots of Complex Functions: a Journey in Illustration (download pdf from Notices of the AMS) where he investigates how much that can be read off from a color plot showing only the phase f (z) / |f (z)| of the function. (Answer: More or less everything!) At the end of the paper there is also a short Matlab code snippet for making such phase plots. Prof. Wegert is also one of the people behind the beautiful Mathe-Kalender, and he was interviewed for an article about visualization of complex functions (!) in Frankfurter Allgemeine Zeitung in February 2011: Komplexe Zahlen: Das Pünktchen auf dem i. And in 2012, his book Visual Complex Functions: An Introduction with Phase Portraits was published.

## Technical stuff

### Software used

Most pictures were made on a PC running GNU/Linux, using the GNU Image Manipulation Program (GIMP). For the actual domain coloring stuff, and for the y = f (x) plot above, I used the MathMap GIMP plugin by Mark Probst, slightly hacked by me to allow the elementary functions to take complex arguments. These changes were then incorporated into MathMap v0.12 (a long time ago), and the plugin now also comes with example files for making domaing coloring plots.

Some of the more recent pictures were made with a buggy and ugly Python program that I wrote, since I had problems with MathMap for a while (old versions of MathMap not working with new versions of GIMP). If I can pull myself together some day and tidy up this Python program (not likely to happen very soon) I will make it available here, but right now I'd like to keep it to myself. But you don't need to worry about that, since nowadays MathMap development is active again, so you should be able to use that if you want to make your own plots. You can also try Michael J. Gruber's Python-Fu GIMP plugin.

The Julia set was drawn by Daniel Cotting's Fractal Chaos Explorer GIMP plug-in. The formula in the example above was generated by the TeX input for GIMP plug-in written by Dov Grobgeld.

The HTML in the main document was generated by Ian Hutchinson's TtH TeX-to-HTML translator. The LaTeX source for that, like the HTML on this start page, was written using Emacs.

### (Obsolete) Scheme script for making domain coloring plots

Here is a script that used to work once upon a time, with older versions of GIMP and MathMap. If you want to try it out, good luck, but I can't give any warranties or support.

You need GIMP with the MathMap plug-in installed. Download the Scheme file and put it in the GIMP scripts directory. The next time you start GIMP, a menu entry `Script-Fu/MathMap/Domain Coloring` should appear in the `Xtns` menu in the toolbox.

## Miscellaneous

This site is knot 217 in Knot a Braid of Links, a "cool math site of the week" provided by the Canadian Mathematical Society.

[an error occurred while processing this directive]