from math import factorial from numpy import linspace, exp, pi import matplotlib.pyplot as plt def f(thin, z): return sum(z ** thin(n) / thin(n) for n in range(1, 12)) theta = linspace(0, 2 * pi, 1000) for r in [0.5, 0.75, 0.875, 1]: z = f(factorial, r * exp(1j * theta)) plt.plot(z.real, z.imag) plt.axes().set_aspect(1) plt.title("f(z)") plt.show() plt.close() for n in range(8): r = (n + 1) / 8 z = f(lambda n: 2**n, r * exp(1j * theta)) plt.plot(z.real, z.imag) plt.title("g(z)") plt.axes().set_aspect(1) plt.show() # https://www.johndcook.com/blog/2020/08/08/images-of-concentric-circles/