Skip to main content

Plot complex-valued functions

Project description

cplot

Plot complex-valued functions with style.

PyPi Version PyPI pyversions GitHub stars PyPi 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),
    (-2.0, +2.0),
    400,
    # colorbars: bool = True,
    # abs_scaling="h-1.0",        # how to scale the lightness in domain coloring
    # colorspace: str = "cam16",  # ditto
    # abs/args contour lines:
    # contours=("auto", (-np.pi / 2, 0, np.pi / 2, np.pi)),
    # linecolors = "#a0a0a050",
    # linestyles = "solid",
    # linestyle_abs1 = "solid"
)
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, for arg(z) == pi/2 it's orange, for arg(z) = -pi / 2 it's blue, and for arg(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)
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


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.5.2.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cplot-0.5.2-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file cplot-0.5.2.tar.gz.

File metadata

  • Download URL: cplot-0.5.2.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for cplot-0.5.2.tar.gz
Algorithm Hash digest
SHA256 4aca7422f42ed242af8dda6d3d552076b605e26de8740652ab3127a337dd6f9e
MD5 d521ddd672f777ec43ec8beeb20caf85
BLAKE2b-256 6f3ec5c2b7a6a5c3cbf2dd34f2b6b7a1c86ba401776b820b2fbe92ea67d3838a

See more details on using hashes here.

File details

Details for the file cplot-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: cplot-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for cplot-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dcf9d8fb93655043b9ffb2c6e4aa8754df39fd886b33960d926998833162abab
MD5 014561ecca03b9d1d87b85942d715201
BLAKE2b-256 e7a53f3f80f5614963ee55fb8bd319ad31bb6f443f8a4ca71228f06c37a93d29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page