python画动态图
时间: 2023-08-25 11:06:42 浏览: 76
Python可以使用matplotlib库来画动态图。在matplotlib库中,可以使用pyplot模块来绘制动态图。具体实现可以参考以下代码:
```python
import matplotlib.pyplot as plt
import numpy as np
import imageio
def generate_gif(data, output_path):
image_list = []
ndata = np.array(data)
row, col = ndata.shape
x = range(col)
for i in range(row):
plt.clf() # 清除上一幅图
plt.cla() # 清除坐标轴
plt.xlim(0, 12) # 设置x轴范围
plt.ylim(0, 1.5) # 设置y轴范围
plt.title('Val Distribution')
plt.xlabel('Time')
plt.ylabel('Val')
plt.grid(linestyle='-.')
y = ndata[i]
plt.plot(x[:], y[:], 'b', lw=1)
plt.savefig('temp.png')
image_list.append(imageio.imread('temp.png'))
plt.pause(0.1)
plt.close()
imageio.mimsave(output_path, image_list, 'GIF', duration=0.35)
if __name__ == "__main__":
row = 10
col = 20
data = np.random.rand(row, col)
output_path = './demo.gif'
generate_gif(data, output_path)
print('done!')
```
这段代码使用了matplotlib的pyplot模块来绘制动态图。首先,我们生成了一个随机的数据矩阵,然后通过循环遍历每一行的数据,绘制折线图。在每次绘制之前,我们先清除上一幅图和坐标轴,然后设置x轴和y轴的范围,添加标题和坐标轴标签,最后绘制折线图并保存为临时图片。将每一幅图像添加到图像列表中,最后使用imageio库将图像列表保存为GIF动画文件。
运行以上代码,即可生成一个名为demo.gif的动态图。
阅读全文