#!/usr/bin/python3
import numpy as np
import matplotlib.pyplot as plt

def mandel(z0,maxiter):
    i=0
    z=z0
    while (i<maxiter)and(z.real**2+z.imag**2<4):
        z=z*z+z0
        i=i+1
    return i

xmin=-0.753
xmax=-0.723
ymin=0.165
ymax=0.195
maxiter=500
size=400

M=np.ones((size,size))

img=plt.imshow(M,cmap="magma",interpolation='none',origin='lower',extent=[xmin,xmax,ymin,ymax])
img.set_clim(vmin=0, vmax=1)
plt.ion()
plt.title("(%f%+fi) to (%f%+fi)"%(xmin,ymin,xmax,ymax))
plt.show()
plt.pause(0.0001)

for i in range (0,size):
    x=xmin+i*(xmax-xmin)/size
    for j in range (0,size):
        y=ymin+j*(ymax-ymin)/size
        z=complex(x,y)
        M[j][i]=1-mandel(z,maxiter)/maxiter

    if (i%10==0):
        img.set_data(M)
        plt.pause(0.0001)

img.set_data(M)
plt.ioff()
plt.show()
