• animation模块的使用


    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_())
    


  • 相关阅读:
    linux curses函数库
    在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案
    Android Support ;v4、v7、v13的区别
    background-position
    java web 之 web.xml篇
    javaweb之Cookie篇
    Enumeration 接口
    Java Bad version number in .class file
    使用AppCan自带的升级功能实现移动端升级
    obj.offsetHeight与obj.style.height区别
  • 原文地址:https://www.cnblogs.com/komean/p/11210083.html
Copyright © 2020-2023  润新知