Пересчитать данные на графике при масштабировании - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь построить набор Мандельброта, но я не могу найти способ автоматического обновления графика с адекватным разрешением после увеличения масштаба. Я предполагаю, что это должно напомнить новый расчет, основанный на новых пределах x и y. Как я могу сделать эти отзывы из matplotlib?

Я прилагаю код, который у меня уже есть:


import numpy
from numba import autojit
import matplotlib.pyplot as plt

@autojit
def mandelbrot(Re, Im, max_iter):
    c = complex(Re, Im)
    z = 0

    for i in range(max_iter):
        z = z**2 + c
        if abs(z)>= 2:
            return i
    return max_iter

def mandelbrot_set(x_1,x_2,y_1,y_2,rows,columns):
    result = numpy.zeros([rows,columns])
    for row_index, Re in enumerate(numpy.linspace(x_1,x_2,num=rows)):
        for column_index, Im in enumerate(numpy.linspace(y_1,y_2,num=columns)):
            result[row_index, column_index] = mandelbrot(Re, Im, 100)
    return result


columns = 2000
rows = 2000
x_1=-2
x_2=1
y_1=-1.1
y_2=1.1

plt.figure(dpi=200)
plt.imshow(mandelbrot_set(x_1,x_2,y_1,y_2,rows,columns).T, cmap='jet', interpolation='bilinear', extent=[x_1,x_2,y_1,y_2])

...