栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 制作动态图

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 制作动态图

1. pyplot 动态效果

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

plt.figure()
for i in range(N):
	# 放绘图代码 draw
	plt.pause(0.2)	# delay
plt.show()

比如下面的感知机:



2. 将绘图结果导出为 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()

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


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)


3. 美化

坐标轴设置

# 把坐标轴原点移到 (0, 0)
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='.')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号