Celluloid让matplotlib动画2红绿灯
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可视化》
自己整理并分享出来。