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)

plt.axes().set_aspect(1)
plt.title("f(z)")
for r in [0.5, 0.75, 0.875, 1]:
	z = f(factorial, r*exp(1j*theta))
	plt.plot(z.real, z.imag)
plt.show()
plt.close()

plt.title("g(z)")
plt.axes().set_aspect(1)
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.show()
