animation模块的使用
2024-09-06 23:08:25
1.动画的实现—初探
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = ax.plot([], [], 'r-', animated=False)
def init():
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
return ln,
def update(frame):
xdata.append(frame)
ydata.append(np.sin(frame))
ln.set_data(xdata, ydata)
return ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
init_func=init, blit=True)
plt.show()
2.结合pyqt
from PyQt5.QtWidgets import QPushButton,QWidget,QApplication,QGridLayout,QListWidget,QLineEdit
import pyqtgraph as pg
# pyqtgraph使用matplotlib
import pyqtgraph.widgets.MatplotlibWidget as mw
import sys
import numpy as np
# 用于中文乱码
import matplotlib
""" 绘图防止乱码 """
# 指定默认字体 下面三条代码用来解决绘图中出现的乱码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family'] = 'sans-serif'
# 解决负号'-'显示为方块的问题
matplotlib.rcParams['axes.unicode_minus'] = False
from matplotlib.animation import FuncAnimation
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.setGeometry(50,50,800,620)
self.setWindowTitle("animation动画—结合pyqt")
model_plt = mw.MatplotlibWidget()
# 隐藏matplotlib中的工具栏
model_plt.toolbar.setVisible(False)
self.fig = model_plt.getFigure()
# 设置一个1*1面板
self.ax = self.fig.add_subplot(111)
self.xdata, self.ydata = [], []
self.ln, = self.ax.plot([], [], 'r-', animated=False)
ani = FuncAnimation(self.fig, self.update, frames=np.linspace(0, 2 * np.pi, 128),
init_func=self.init, blit=True)
self.gridLayout = QGridLayout(self)
## 将部件添加到布局中的适当位置
self.gridLayout.addWidget(model_plt, 0, 0)
def init(self):
self.ax.set_xlim(0, 2 * np.pi)
self.ax.set_ylim(-1, 1)
return self.ln,
def update(self, frame):
self.xdata.append(frame)
self.ydata.append(np.sin(frame))
self.ln.set_data(self.xdata, self.ydata)
return self.ln,
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
最新文章
- apache多站点配置
- JMeter学习-020-JMeter 监听器之【聚合报告】错误率、吞吐量、传输速率实例计算
- Claims Identity
- Spring4.1.6 标签注解大全以及解释
- c# 支付宝查单补单
- Maven类包冲突终极解决方案
- codevs 1507酒厂选址
- 《javascript高级程序设计》第八章 The Browser Object Model
- win8.1上安装vc6
- CentOS PPTP配置LNMP+PPTP+FreeRADIUS+DaloRADIUS+流量控制
- mac下virtualbox配置全网通
- Spring框架中 配置c3p0连接池 完成对数据库的访问
- h2engine游戏服务器设计之聊天室示例
- MFC的PNG贴图按钮类(详细注释)
- php循环删除文件夹和目录
- ELF文件解析(一):Segment和Section
- Knockout.Js官网学习(enable绑定、disable绑定)
- Asp连接Oracle (包含绿色版12.2客户端和ODBC驱动安装)
- ARM LDR/STR, LDM/STM 指令
- weblogic安装错误BEA-090870解决方案