python - PyQt5 界面中的动画 matplotlib
问题描述
我尝试使用带有 Python3 的 matplotlib 在界面中制作动画图。
目标是制作一个使用按钮开始动画的情节。这是一个简约的代码:
import sys, os, random
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
import numpy as np
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib.animation as animation
import matplotlib
import matplotlib.pyplot as plt
class AnimationWidget(QWidget):
def __init__(self):
QMainWindow.__init__(self)
vbox = QVBoxLayout()
self.figure = matplotlib.figure.Figure()
self.canvas = FigureCanvas(self.figure)
vbox.addWidget(self.canvas)
hbox = QHBoxLayout()
self.animate_button = QPushButton("animate", self)
self.animate_button.clicked.connect(self.on_animate)
hbox.addWidget(self.animate_button)
vbox.addLayout(hbox)
self.setLayout(vbox)
self.x = np.linspace(0, 4*np.pi, 400)
self.phase = 0.0
self.y = np.sin(self.x + self.phase)
self.axes = self.figure.add_subplot(111)
self.axes.plot(self.x, self.y)
def update(self, i):
self.phase += np.pi/10.
y = np.sin(self.x + self.phase)
self.axes.plot(self.x, y)
def on_animate(self):
self.ani = animation.FuncAnimation(self.figure, self.update, interval=500)
if __name__ == "__main__":
qApp = QApplication(sys.argv)
aw = AnimationWidget()
aw.show()
sys.exit(qApp.exec_())
当我按下动画按钮时,动画功能什么也不做。事实上,当按下按钮时,即使更新功能内的打印也不起作用。
知道为什么它不起作用吗?
解决方案
推荐阅读
- jenkins - 如何在 Jenkins 的特定节点上从 TFS 签出和运行管道文件?
- java - 将图像压缩为字节数组
- wso2 - WSO2 API 管理器:分析设置 + PostgreSQL 期间出错
- google-sheets-api - Google Sheets API values.append 返回不正确的响应
- api - 如何通过 eventbrite API 将图像包含在事件中
- authentication - 使用 Sharepoint 的 App+User 上下文从 ASP.NET WebApi 进行身份验证
- arrays - 如何在 swift 4 中获取字节 [UInt8] 数组中的校验和?
- python - 在 python 中制作一组简单的叶绿素图——颜色不显示
- .net-core - 在中间件中获取用户信息并注入
- php - 在 Laravel 函数中调用多个返回函数