# contributed by Stephen Phillips from pyx import * # Mandelbrot parameters re_min = -2 re_max = 0.5 im_min = -1.25 im_max = 1.25 gridx = 100 gridy = 100 max_iter = 10 # Set-up re_step = (re_max - re_min) / gridx im_step = (im_max - im_min) / gridy d = [] # Compute fractal for re_index in range(gridx): re = re_min + re_step * (re_index + 0.5) for im_index in range(gridy): im = im_min + im_step * (im_index + 0.5) c = complex(re, im) n = 0 z = complex(0, 0) while n < max_iter and abs(z) < 2: z = (z * z) + c n += 1 d.append([re - 0.5 * re_step, re + 0.5 * re_step, im - 0.5 * im_step, im + 0.5 * im_step, float(n)/max_iter]) # Plot graph g = graph.graphxy(height=8, width=8, x=graph.axis.linear(min=re_min, max=re_max, title=r'$\Re(c)$'), y=graph.axis.linear(min=im_min, max=im_max, title=r'$\Im(c)$')) g.plot(graph.data.points(d, xmin=1, xmax=2, ymin=3, ymax=4, color=5), [graph.style.rect(color.gradient.Rainbow)]) g.dodata() # plot data first, then axes g.writeEPSfile('mandel') g.writePDFfile('mandel')