编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Celluloid让matplotlib动画-2:红绿灯

wxchong 2024-11-17 16:46:22 开源技术 91 ℃ 0 评论

1 说明:

=====

1.1 Celluloid的matplotlib动画介绍国内很少,我的第一篇文章:

《Celluloid让matplotlib动画如此简单-1》

1.2 本次讲解红绿灯的设计,熟悉Celluloid、Matplotlib和Python。

1.3 效果图

2 代码讲解:

=========

2.1 导入模块

# -*- coding: utf-8 -*- 
#第1步:导入模块
from matplotlib import pyplot as plt
from celluloid import Camera

2.2 窗口和画布设置

#第2步:窗口和画布设置
fig = plt.figure(figsize=(8, 8))

#个人爱好,背景颜色为黑色
#画布外的背景颜色设置
fig.patch.set_facecolor('black')
#定义画布的背景颜色设置
ax=fig.gca()
ax.set_facecolor("black")

#可注释掉
#窗口标题名
fig.canvas.set_window_title('红绿灯示意图')
#图标标题名
plt.title('红绿灯示意图',color='white')

#挂入摄像头
camera = Camera(fig)

2.3 初始化数据

#第3步:初始化数据
#增加一头一尾两个黑灯,主要是散点显示不全
#y坐标
y=[1.5,1.6,1.7,1.8,1.9]
#x坐标
x=[2,2,2,2,2]
#散点颜色
rld=['black','green','yellow','red','black']

2.4 循环

#第4步:循环
for i in range(5):
    #散点大小设置s
    plt.scatter(x[i],y[i],marker='o',s=4000,color=rld[i])
    #即snap只是图标内的摄像,图标标题一旦摄像就是不能更改
    camera.snap()

2.5 动画设置和显示

#第5步:动画设置和显示
#默认interval=200太快了
animation = camera.animate(interval=2000)
#保存
#animation.save('redgreenlight.gif', writer = 'imagemagick')

#全黑背景要不要这个无所谓
plt.axis('off') #坐标轴不显示
plt.show()

3 小结

注意:celluloid动画设置超级简单化matplotlib,但是也只是对画布里面的图标进行摄像和动画,假若对标题名进行数据可变,是不能进行动画显示的。

即:对下面无效。

#窗口标题名
fig.canvas.set_window_title('红绿灯示意图')
#图标标题名
plt.title('红绿灯示意图',color='white')

什么意思?

就是下面e和count的动态数字显示是无效的。

图来自我的文章:《欧拉数e的python-matplotlib可视化》

自己整理并分享出来。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表