Plot complex-valued functions
Project description
Plot complex-valued functions with style.
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="auto",
# contours_arg=(-np.pi / 2, 0, np.pi / 2, np.pi),
# dash_abs_contour_1: bool = True,
# colorspace: str = "cam16",
# add_colorbars: bool = True,
# saturation_adjustment: float = 1.28,
)
plt.show()
The plot consists of three building blocks:
- domain coloring, i.e., mapping the absolute value to lightness and the complex argument to the chroma of the representing color
- Contours of constant absolute value (the contour
abs(z) == 1
is dashed, the other contours are at (2, 4, 8, etc. and 1/2, 1/4, 1/8, etc., respectively) - Contours along constant argument (angle). For
arg(z) == 0
, the color is green, forarg(z) == pi/2
it's orange, forarg(z) = -pi / 2
it's blue, and forarg(z) = pi
it's pink
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)
Gallery
All plots are created with default settings.
z**1 |
z**2 |
z**3 |
1/z |
z / abs(z) |
(z+1) / (z-1) |
z ** z |
(1/z) ** z |
z ** (1/z) |
np.sqrt |
z**(1/3) |
z**(1/4) |
np.log |
np.exp |
exp(1/z) |
exp(- z ** 2) |
1 / (1 + z ** 2) |
scipy.special.erf |
np.sin |
np.cos |
np.tan |
np.sinh |
np.cosh |
np.tanh |
np.arcsin |
np.arccos |
np.arctan |
sin(z) / z |
cos(z) / z |
tan(z) / z |
scipy.special.gamma |
scipy.special.digamma |
mpmath.zeta |
mpmath.siegeltheta |
mpmath.siegelz |
Riemann-Xi |
Testing
To run the cplot unit tests, check out this repository and run
tox
Similar projects and further reading
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cplot-0.7.0.tar.gz
(26.5 kB
view hashes)
Built Distribution
cplot-0.7.0-py3-none-any.whl
(25.0 kB
view hashes)