Back to Hans Lundmark's main page

Hans Lundmark's complex analysis pages

1. Introduction

Example. Below are two plots of the function f (z) = sin(z3−1) / 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.

Real plot of f f(z)=sin(z^3-1)/z Complex plot of f

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:



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:


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):

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.)

Traditional visualization (forward mapping):

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.


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

Logo: Graphics by GIMP Logo: KaBoL

[an error occurred while processing this directive]