Skip to content

Simple interactive plotting of complex functions & arrays using domain coloring.

Notifications You must be signed in to change notification settings

Sagnac/ComplexColor.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComplexColor.jl

complex_color(s, color = HSL) converts an array of complex numbers into an image matrix of RGB values using a hue-lightness color mapping for the phase and modulus.

complex_plot(x, y, s, color = HSL) plots a complex number array s within the x and y limits using domain coloring in the HSL or perceptual OKLCH color spaces.

Note: The phase contour lines are kinda bugged at the moment at around ±π; these contours are not displayed by default, but can be toggled on the plot.

Installation

using Pkg
Pkg.add(url="https://github.com/Sagnac/ComplexColor.jl")

Support for the Oklch color space requires the following fork:

Pkg.add(url="https://github.com/Sagnac/Colors.jl")

Plotting examples

using ComplexColor
# for a complex array
x = y = -2:0.01:2
z = complex.(x, y')
s = map(z -> 1/z, z)
fig = complex_plot(x, y, s; title = L"s = z^{-1}")
# for a complex function over intervals
x = y = -2..2
f(z) = inv(z)
complex_plot(x, y, f)
# for an arbitrary complex function of two real variables (ℝ² → ℂ)
x = y = -3:0.01:3
f(x, y) = ei2pi(x * y)
complex_plot(x, y, f, Real; xlabel = "x", ylabel = "y")

About

Simple interactive plotting of complex functions & arrays using domain coloring.

Topics

Resources

Stars

Watchers

Forks

Languages