python写元胞自动机,用矩阵表示状态,最后用plt.show绘图,请问怎么才能实现动态绘图(纯小white)
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
python的matplotlib怎么实现矩阵动态绘图
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
在Python中,使用matplotlib库进行矩阵动态绘图可以通过创建一个动画对象来实现。这里是一个详细的步骤和代码示例,用于展示如何将给定的代码片段修改为动态绘制元胞自动机的状态。
首先,确保已经安装了
matplotlib
和ipython
的交互式环境(例如Jupyter Notebook
)。如果没有安装,可以使用以下命令安装:pip install matplotlib ipython
然后,将代码转换成动态绘图版本。我们需要引入必要的模块,并创建一个动画类。以下是修改后的代码:
import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation # 假设这是你的初始矩阵 initial_matrix = np.random.randint(0, 2, size=(10, 10)) c = initial_matrix def cell_change(matrix): # 这里是你的细胞更新规则 for i in range(len(matrix)): for j in range(len(matrix[0])): num_neighbors = sum([matrix[(i + k) % 10][(j + l) % 10] for k in [-1, 0, 1] for l in [-1, 0, 1] if (k != 0 or l != 0)]) if matrix[i][j] == False and (num_neighbors > 2) and (num_neighbors < 4): probability = np.random.rand() if probability > 0.5: matrix[i][j] = True else: matrix[i][j] = False elif matrix[i][j] == True and num_neighbors < 2: matrix[i][j] = False elif matrix[i][j] == True and num_neighbors >= 3: pass def animate(i): global c cell_change(c) plt.imshow(c, cmap='gray') fig, ax = plt.subplots() ani = FuncAnimation(fig, animate, frames=np.arange(1, 100), interval=100) # 每隔100毫秒更新一次 plt.show()
这段代码首先导入了所需的库,然后定义了一个名为
cell_change
的函数,这个函数与您提供的代码相同。接下来,我们定义了一个名为animate
的函数,它将在每个时间步长上更新图像。我们创建了一个新的图像窗口,并使用FuncAnimation
创建了一个动画,它每100毫秒调用一次animate
函数,总共运行99次(从1到100)。这将创建一个动态的元胞自动机图形,显示矩阵随时间的变化。注意,为了在非交互式环境中运行此代码,可能需要使用
%matplotlib notebook
或%matplotlib widget
魔法命令来启用交互式绘图。如果你在Jupyter Notebook中运行,不需要额外设置。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 提问STK的问题,哪位航天领域的同学会啊
- ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
- ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
- ¥15 关于#java#的问题,请各位专家解答!
- ¥15 如何卸载arcgis 10.1 data reviewer for desktop
- ¥15 共享文件夹会话中为什么会有WORKGROUP
- ¥15 关于#python#的问题:使用ATL02数据解算光子脚点的坐标(操作系统-windows)
- ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
- ¥15 在matlab中Application Compiler后的软件无法打开
- ¥15 想问一下STM32创建工程模板时遇到得问题