📜  Python的Mandelbrot分形集可视化(1)

📅  最后修改于: 2023-12-03 15:19:34.445000             🧑  作者: Mango

Python的Mandelbrot分形集可视化

什么是Mandelbrot分形集?

Mandelbrot分形集是一种数学上绘制的图形,其图案和曲线变化无限复杂,具有高度自相似性,被认为是复杂的自然界和科学现象的抽象模型,也成为了计算机绘图的重要应用。

如何用Python实现Mandelbrot分形集可视化?
import matplotlib.pyplot as plt

# 定义需要的函数
def mandelbrot(c, max_iters=100):
    z = c
    for i in range(max_iters):
        if abs(z) > 2:
            return i
        z = z * z + c
    return max_iters

# 设置绘图所需的变量
x_min, x_max = -2, 1
y_min, y_max = -1.5, 1.5
image_width = 1000
image_height = 1000
max_iter = 100
colors = 256

# 创建一个空白图像,将每个像素的值映射到颜色
image = [[0 for y in range(image_height)] for x in range(image_width)]
for x in range(image_width):
    real = x * (x_max - x_min) / (image_width - 1) + x_min
    for y in range(image_height):
        imag = y * (y_max - y_min) / (image_height - 1) + y_min
        c = complex(real, imag)
        color_value = mandelbrot(c, max_iter)
        image[x][y] = color_value

# 绘图
plt.figure(figsize=(10, 10))
plt.imshow(image, cmap='hot', interpolation='bilinear', extent=[x_min, x_max, y_min, y_max])
plt.axis('off')
plt.show()
如何调整Mandelbrot分形集的外观?

代码中的image_width和image_height可以设置绘制的图像大小,max_iter可以设置最大迭代次数,以影响分形图形的细节,colors可以设置颜色的深度和变化。

同时,plt.imshow()中的cmap参数可以修改分形集的颜色映射,如'hot'、'coolwarm'等,extent参数可以控制绘图的范围。

参考文献

[1] Wikipedia, Mandelbrot set, https://en.wikipedia.org/wiki/Mandelbrot_set

[2] Matplotlib documentation, imshow(), https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.imshow.html