cplot (original) (raw)

cplot

Plot complex-valued functions with style.

PyPi Version PyPI pyversions DOI GitHub stars Downloads

Discord

gh-actions codecov Code style: black

cplot helps plotting complex-valued functions in a visually appealing manner.

Install with

pip install cplot

and use as

import numpy as np

import cplot

def f(z): return np.sin(z**3) / z

plt = cplot.plot( f, (-2.0, +2.0, 400), (-2.0, +2.0, 400), # abs_scaling=lambda x: x / (x + 1), # how to scale the lightness in domain coloring # contours_abs=2.0, # contours_arg=(-np.pi / 2, 0, np.pi / 2, np.pi), # emphasize_abs_contour_1: bool = True, # add_colorbars: bool = True, # add_axes_labels: bool = True, # saturation_adjustment: float = 1.28, # min_contour_length = None, # linewidth = None, ) plt.show()

Historically, plotting of complex functions was in one of three ways

Only show the absolute value; sometimes as a 3D plot Only show the phase/the argument in a color wheel (phase portrait) Show contour lines for both arg and abs

Combining all three of them gives you a cplot:

See also Wikipedia: Domain coloring.

Features of this software:

Other useful functions:

There is a tripcolor function as well for triangulated 2D domains

cplot.tripcolor(triang, z)

The function get_srgb1 returns the SRGB1 triple for every complex input value.

(Accepts arrays, too.)

z = 2 + 5j val = cplot.get_srgb1(z)

Riemann sphere

cplot can also plot functions on the Riemann sphere, a mapping of the complex plane to the unit ball.

import cplot import numpy as np

cplot.riemann_sphere(np.log)

This way to the gallery!

cplot

Testing

To run the cplot unit tests, check out this repository and run

tox

Similar projects and further reading

License

This software is published under the GPL-3.0 license. In cases where the constraints of the GPL prevent you from using this software, feel free contact the author.