[Python] How could I zoom in on a generated Mandelbrot set without consuming too many...

Discussão em 'Python' iniciado por Stack, Abril 29, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to make a Mandelbrot set display, with the following code:

    import numpy as np
    import matplotlib.pyplot as plt

    plt.rcParams['toolbar'] = 'None'

    def mandelbrot(c, max_iter):
    z = 0
    for n in range(max_iter):
    if abs(z) > 2:
    return n
    z = z*z + c
    return max_iter

    def mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter):
    r1 = np.linspace(xmin, xmax, width)
    r2 = np.linspace(ymin, ymax, height)
    n3 = np.empty((width, height))

    for i in range(width):
    for j in range(height):
    n3[i, j] = mandelbrot(r1 + 1j*r2[j], max_iter)
    return n3.T

    # Settings
    xmin, xmax, ymin, ymax = -2.0, 1.0, -1.5, 1.5
    width, height = 800, 800
    max_iter = 256

    # Generate Mandelbrot set
    mandelbrot_image = mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter)

    # Window
    fig = plt.figure(figsize=(5, 5))
    fig.canvas.manager.set_window_title('Mandelbrot Set')
    ax = fig.add_axes([0, 0, 1, 1]) # Fill the whole window
    ax.set_axis_off()

    # Show fractal
    ax.imshow(mandelbrot_image, extent=(xmin, xmax, ymin, ymax), cmap='hot')
    plt.show()


    How could I zoom in on the fractal continuously, without taking up too many resources? I am running on a mid-range laptop, and it currently takes a long time to generate the fractal. Is there a faster way to do this when implementing a zoom feature?

    Continue reading...

Compartilhe esta Página