Python 制作动态图

ww

  1. pyplot 动态效果

如果想得到动态绘制效果,可以使用 plt.pause(k) 每绘制一次就暂停 kms 实现动态效果:

plt.figure()
for i in range(N):

    plt.pause(0.2)
plt.show()

比如下面的感知机:

Python 制作动态图
  1. 将绘图结果导出为 GIF

有时候我们并不满足于此,我们可能想得到 gif 动态图,一种办法是:

  1. 先把每一次绘制结果保存
  2. 再把所有结果连起来得到 gif

2.1 保存每一步的结果

首先创建一个目录 output_dir 用来存放结果图:

output_dir = './images'

for i in range(N):
    plt.savefig(output_dir + '//iter' + str(i) + '.jpg')
    plt.pause(0.1)
plt.show()

程序跑完就可以得到一堆图:

Python 制作动态图

2.2 生成 GIF

可以将下面的 py 文件打包为函数 gif_generator,在绘图主程序中 import 后,直接调用 gif_generator 就可以生成 gif 了

import os
import imageio

path='./imgs'

filenames=[]
for files in os.listdir(path):
    if files.endswith('jpg') or files.endswith('jpeg') or files.endswith('png'):
        file=os.path.join(path,files)
        filenames.append(file)

images=[]
for filename in filenames:
    images.append(imageio.imread(filename))
imageio.mimsave('./OR_perceptron.gif', images, duration=0.8)
  1. 美化

坐标轴设置


ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
plt.xlabel('x'), plt.ylabel('y')
plt.xticks([]), plt.yticks([])

散点图颜色动态设置

创建一个元素值落在 [0, 1] 之间的 list colors

调用 scatter 函数时,设置参数 facecolors=colors

如下面在绘制 RGB 空间散点图时,设置每一个点的颜色就是真实的 RGB 颜色:

pixel_colors = (rgb_nemo.reshape(rows*cols, 3)/255).tolist()
axis.scatter(r.flatten(), g.flatten(), b.flatten(),
        facecolors=pixel_colors, marker='.')

Python 制作动态图

Original: https://blog.csdn.net/qq_41140138/article/details/120938493
Author: 我有两颗糖
Title: Python 制作动态图

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/766500/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球