最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python之matplotlib學習繪制動態(tài)更新圖實例代碼

 更新時間:2018年01月23日 09:12:22   作者:bigxu  
這篇文章主要介紹了python之matplotlib學習繪制動態(tài)更新圖實例代碼,文中涉及具體實現(xiàn)代碼,演示效果及運行時出現(xiàn)的問題分析等相關內容,小編覺得還是挺不錯的,這里分享給大家,需要的朋友可以參考下

簡介

通過定時器Timer觸發(fā)事件,定時更新繪圖,可以形成動態(tài)更新圖片。下面的實例是學習《matplotlib for python developers》一文的筆記。

實現(xiàn)

實現(xiàn)代碼及簡單介紹

通過self.user = self.user[1:] + [temp],每次刪除列表的第一元素,在其尾部添加新的元素。這樣完成user數(shù)據(jù)的動態(tài)更新。其他詳細的解釋見文中的注釋部分。

#-*-coding:utf-8-*- 
import wx 
from matplotlib.figure import Figure 
import matplotlib.font_manager as font_manager 
import numpy as np 
from matplotlib.backends.backend_wxagg import \ 
 FigureCanvasWxAgg as FigureCanvas 
# wxWidgets object ID for the timer 
TIMER_ID = wx.NewId() 
# number of data points 
POINTS = 300 
 
class PlotFigure(wx.Frame): 
  """Matplotlib wxFrame with animation effect""" 
  def __init__(self): 
    wx.Frame.__init__(self, None, wx.ID_ANY, title="CPU Usage Monitor", size=(600, 400)) 
    # Matplotlib Figure 
    self.fig = Figure((6, 4), 100) 
    # bind the Figure to the backend specific canvas 
    self.canvas = FigureCanvas(self, wx.ID_ANY, self.fig) 
    # add a subplot 
    self.ax = self.fig.add_subplot(111) 
    # limit the X and Y axes dimensions 
    self.ax.set_ylim([0, 100]) 
    self.ax.set_xlim([0, POINTS]) 
     
    self.ax.set_autoscale_on(False) 
    self.ax.set_xticks([]) 
    # we want a tick every 10 point on Y (101 is to have 10 
    self.ax.set_yticks(range(0, 101, 10)) 
    # disable autoscale, since we don't want the Axes to ad 
    # draw a grid (it will be only for Y) 
    self.ax.grid(True) 
    # generates first "empty" plots 
    self.user = [None] * POINTS 
    self.l_user,=self.ax.plot(range(POINTS),self.user,label='User %') 
 
    # add the legend 
    self.ax.legend(loc='upper center', 
              ncol=4, 
              prop=font_manager.FontProperties(size=10)) 
    # force a draw on the canvas() 
    # trick to show the grid and the legend 
    self.canvas.draw() 
    # save the clean background - everything but the line 
    # is drawn and saved in the pixel buffer background 
    self.bg = self.canvas.copy_from_bbox(self.ax.bbox) 
    # bind events coming from timer with id = TIMER_ID 
    # to the onTimer callback function 
    wx.EVT_TIMER(self, TIMER_ID, self.onTimer) 
 
  def onTimer(self, evt): 
    """callback function for timer events""" 
    # restore the clean background, saved at the beginning 
    self.canvas.restore_region(self.bg) 
        # update the data 
    temp =np.random.randint(10,80) 
    self.user = self.user[1:] + [temp] 
    # update the plot 
    self.l_user.set_ydata(self.user) 
    # just draw the "animated" objects 
    self.ax.draw_artist(self.l_user)# It is used to efficiently update Axes data (axis ticks, labels, etc are not updated) 
    self.canvas.blit(self.ax.bbox) 
if __name__ == '__main__': 
  app = wx.PySimpleApp() 
  frame = PlotFigure() 
  t = wx.Timer(frame, TIMER_ID) 
  t.Start(50) 
  frame.Show() 
  app.MainLoop() 

運行結果如下所示:

疑問

但程序運行在關閉的時候會出現(xiàn)應用程序錯誤,不知道什么問題。python不是有垃圾回收機制嗎,難道是內存泄露?

猜測的原因可能是在關閉的時候正在繪圖故導致應用程序出錯。通過添加Frame的析構函數(shù),停止更新則不會出現(xiàn)問題。

def __del__( self ): 
  t.Stop() 

總結

以上就是本文關于python之matplotlib學習繪制動態(tài)更新圖實例代碼的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • Python實現(xiàn)的圓形繪制(畫圓)示例

    Python實現(xiàn)的圓形繪制(畫圓)示例

    這篇文章主要介紹了Python實現(xiàn)的圓形繪制(畫圓),結合實例形式分析了Python基于numpy與matplotlib模塊的數(shù)學運算及圖形繪制相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • Python一行命令部署http?ftp服務

    Python一行命令部署http?ftp服務

    這篇文章主要介紹了Python一行命令部署http?ftp服務實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 基于python生成英文版詞云圖代碼實例

    基于python生成英文版詞云圖代碼實例

    這篇文章主要介紹了基于python生成英文版詞云圖代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 深入解析Python中filter函數(shù)的使用

    深入解析Python中filter函數(shù)的使用

    在Python中,filter函數(shù)是一種內置的高階函數(shù),它能夠接受一個函數(shù)和一個迭代器,然后返回一個新的迭代器,本文主要來介紹一下Python中filter函數(shù)的具體用法,需要的可以參考一下
    2023-07-07
  • Python3 列表list合并的4種方法

    Python3 列表list合并的4種方法

    這篇文章主要介紹了Python3 列表list合并的4種方法,需要的朋友可以參考下
    2021-04-04
  • Python基于tkinter canvas實現(xiàn)圖片裁剪功能

    Python基于tkinter canvas實現(xiàn)圖片裁剪功能

    這篇文章主要介紹了Python基于tkinter canvas實現(xiàn)圖片裁剪功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Python使用機器學習模型實現(xiàn)溫度預測詳解

    Python使用機器學習模型實現(xiàn)溫度預測詳解

    使用?Python?可以使用機器學習模型進行溫度預測。常用的模型有回歸分析、隨機森林等。本文就來和大家來了具體實現(xiàn)方法,希望對大家有所幫助
    2023-01-01
  • 基于python中的TCP及UDP(詳解)

    基于python中的TCP及UDP(詳解)

    下面小編就為大家?guī)硪黄趐ython中的TCP及UDP(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望對大家有所幫助
    2017-11-11
  • 4種Python基于字段的不使用元類的ORM實現(xiàn)方法總結

    4種Python基于字段的不使用元類的ORM實現(xiàn)方法總結

    在 Python 中,ORM(Object-Relational Mapping)是一種將對象和數(shù)據(jù)庫之間的映射關系進行轉換的技術,本文為大家整理了4種不使用元類的簡單ORM實現(xiàn)方式,需要的可以參考下
    2023-12-12
  • Python實現(xiàn)快速計算詞頻功能示例

    Python實現(xiàn)快速計算詞頻功能示例

    這篇文章主要介紹了Python實現(xiàn)快速計算詞頻功能,結合實例形式總結分析了Python使用nltk庫進行詞頻計算功能的相關操作技巧,需要的朋友可以參考下
    2018-06-06

最新評論

淮安市| 马公市| 双流县| 滦南县| 五家渠市| 平谷区| 蕲春县| 化德县| 涞水县| 嘉鱼县| 邹平县| 田阳县| 开远市| 崇礼县| 新田县| 马关县| 全南县| 阿克苏市| 资中县| 丹凤县| 饶阳县| 安平县| 砚山县| 邓州市| 乐东| 青河县| 宁国市| 凤山县| 建德市| 巩留县| 阿城市| 措勤县| 礼泉县| 韶关市| 屏边| 綦江县| 甘德县| 始兴县| 塘沽区| 长顺县| 长岭县|