好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Pyqt+matplotlib 實(shí)現(xiàn)實(shí)時(shí)畫圖案例

Pyqt+matplotlib 實(shí)現(xiàn)實(shí)時(shí)畫圖案例

熱門標(biāo)簽:汕頭電商外呼系統(tǒng)供應(yīng)商 北京外呼電銷機(jī)器人招商 云南地圖標(biāo)注 400電話 申請 條件 鄭州智能外呼系統(tǒng)中心 crm電銷機(jī)器人 賓館能在百度地圖標(biāo)注嗎 電銷機(jī)器人 金倫通信 南京crm外呼系統(tǒng)排名

需求分析:

項(xiàng)目中根據(jù)測得的數(shù)據(jù)在界面上實(shí)時(shí)繪制

運(yùn)行環(huán)境:

Python 3.7 + Matplotlib 3.0.2 + PyQt 5

matplot官網(wǎng)給的相應(yīng)的例子:

import sys
import time
import numpy as np
from matplotlib.backends.qt_compat import QtCore, QtWidgets, is_pyqt5
if is_pyqt5():
  from matplotlib.backends.backend_qt5agg import (
    FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
else:
  from matplotlib.backends.backend_qt4agg import (
    FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from matplotlib.figure import Figure
class ApplicationWindow(QtWidgets.QMainWindow):
  def __init__(self):
    super().__init__()
    self._main = QtWidgets.QWidget()
    self.setCentralWidget(self._main)
    layout = QtWidgets.QVBoxLayout(self._main)
    static_canvas = FigureCanvas(Figure(figsize=(5, 3)))
    layout.addWidget(static_canvas)
    self.addToolBar(NavigationToolbar(static_canvas, self))
    dynamic_canvas = FigureCanvas(Figure(figsize=(5, 3)))
    layout.addWidget(dynamic_canvas)
    self.addToolBar(QtCore.Qt.BottomToolBarArea,
            NavigationToolbar(dynamic_canvas, self))
    self._static_ax = static_canvas.figure.subplots()
    t = np.linspace(0, 10, 501)
    self._static_ax.plot(t, np.tan(t), ".")
    self._dynamic_ax = dynamic_canvas.figure.subplots()
    self._timer = dynamic_canvas.new_timer(
      100, [(self._update_canvas, (), {})])
    self._timer.start()
  def _update_canvas(self):
    self._dynamic_ax.clear()
    t = np.linspace(0, 10, 101)
    # Shift the sinusoid as a function of time.
    self._dynamic_ax.plot(t, np.sin(t + time.time()))
    self._dynamic_ax.figure.canvas.draw()
if __name__ == "__main__":
  qapp = QtWidgets.QApplication(sys.argv)
  app = ApplicationWindow()
  app.show()
  qapp.exec_()

上圖中的散點(diǎn)為靜止的,下面的圖為動(dòng)態(tài)的,類似行波,一直在行走,是應(yīng)為用了**self._dynamic_ax.plot(t, np.sin(t + time.time()))**函數(shù),但是這個(gè)和我想得實(shí)時(shí)畫圖不太一樣,在項(xiàng)目中要根據(jù)生成的數(shù)據(jù)實(shí)時(shí)繪圖,因此x軸的元素和y軸的元素個(gè)數(shù)是逐漸增加的。

通過閱讀上述 _update_canvas 函數(shù)代碼以及 dynamic_canvas.new_timer 可以使得每次調(diào)用_update_canvas是的相應(yīng)的x的元素和y軸的元素增加更改后的代碼如下:

import sys
import time
import numpy as np
from matplotlib.backends.qt_compat import QtCore, QtWidgets, is_pyqt5
if is_pyqt5():
  from matplotlib.backends.backend_qt5agg import (
    FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
else:
  from matplotlib.backends.backend_qt4agg import (
    FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from matplotlib.figure import Figure
class ApplicationWindow(QtWidgets.QMainWindow):
  def __init__(self):
    super().__init__()
    self._main = QtWidgets.QWidget()
    self.setCentralWidget(self._main)
    layout = QtWidgets.QVBoxLayout(self._main)
    static_canvas = FigureCanvas(Figure(figsize=(5, 3)))
    layout.addWidget(static_canvas)
    self.addToolBar(NavigationToolbar(static_canvas, self))
    dynamic_canvas = FigureCanvas(Figure(figsize=(5, 3)))
    layout.addWidget(dynamic_canvas)
    self.addToolBar(QtCore.Qt.BottomToolBarArea,
            NavigationToolbar(dynamic_canvas, self))
    self._static_ax = static_canvas.figure.subplots()
    t = np.linspace(0, 10, 501)
    self._static_ax.plot(t, np.tan(t), ".")
    self.x = [] #建立空的x軸數(shù)組和y軸數(shù)組
    self.y = []
    self.n = 0
    self._dynamic_ax = dynamic_canvas.figure.subplots()
    self._timer = dynamic_canvas.new_timer(
      100, [(self._update_canvas, (), {})])
    self._timer.start()
    
  def _update_canvas(self):
    self.n += 1
    if self.n == 200:      #畫200個(gè)點(diǎn)就停止,根據(jù)實(shí)際情況確定終止條件
      self._timer.stop()   
    self._dynamic_ax.clear()
    self.x.append(np.pi/100*self.n) #x加入一個(gè)值,后一個(gè)值比前一個(gè)大pi/100
    xx = np.array(self.x)
    # t = np.linspace(0, 10, 101)
    # Shift the sinusoid as a function of time.
    self._dynamic_ax.plot(xx, np.sin(xx))
    self._dynamic_ax.set_xlim(0,7)
    self._dynamic_ax.set_ylim(-1,1)
    self._dynamic_ax.figure.canvas.draw()
if __name__ == "__main__":
  qapp = QtWidgets.QApplication(sys.argv)
  app = ApplicationWindow()
  app.show()
  qapp.exec_()

上面的圖仍然靜止,下面的可以實(shí)時(shí)顯示

補(bǔ)充:pyqtgraph實(shí)時(shí)繪圖出現(xiàn)無法刷新問題

pyqtgraph實(shí)時(shí)繪圖時(shí),會(huì)概率出現(xiàn)無法實(shí)時(shí)刷新繪制圖,原因是

while True:
  ......
  update()  # 通過 plotitem.setData()更新數(shù)據(jù)
  ......

這里使用的是while循環(huán),不斷的更新數(shù)據(jù)概率出現(xiàn)繪圖不刷新和操作不響應(yīng)(最小化操作會(huì)高概率出現(xiàn)該問題)

解決方法1:

我使用的是PlotWidget,remove后再addwidget,然后再重新繪制

解決方法2:

不使用while循環(huán),使用QTime定時(shí)器

t = QTimer()
t.timeout.connect(self.update)
t.start(10)

兩種方法都可以解決這個(gè)問題,推薦方法2

據(jù)說使用while循環(huán),需要在更新數(shù)據(jù)之后調(diào)用pg.QtGui.QApplication.processEvents()才能確保正常,這個(gè)本人試了不行,可能是我這邊的原因吧

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • python學(xué)習(xí)之使用Matplotlib畫實(shí)時(shí)的動(dòng)態(tài)折線圖的示例代碼
  • python中plot實(shí)現(xiàn)即時(shí)數(shù)據(jù)動(dòng)態(tài)顯示方法
  • 利用matplotlib實(shí)現(xiàn)根據(jù)實(shí)時(shí)數(shù)據(jù)動(dòng)態(tài)更新圖形

標(biāo)簽:浙江 文山 西寧 梅州 石家莊 懷化 昆明 錫林郭勒盟

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Pyqt+matplotlib 實(shí)現(xiàn)實(shí)時(shí)畫圖案例》,本文關(guān)鍵詞  Pyqt+matplotlib,實(shí)現(xiàn),實(shí)時(shí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Pyqt+matplotlib 實(shí)現(xiàn)實(shí)時(shí)畫圖案例》相關(guān)的同類信息!
  • 本頁收集關(guān)于Pyqt+matplotlib 實(shí)現(xiàn)實(shí)時(shí)畫圖案例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美成人精品一区二区| 将军边走边挺进她h| 精品国产丝袜黑色高跟鞋| 日韩a免费| 国产精品5| 理论一级片| 国产明星做爰A片毛片软件下载| 黄色欧美大片| 国产精品久久久久精品电影影院| 国产91熟女高潮一区二区| 日本大尺度在线观看| 久久人人网| 亚洲偷偷拍一区二区三区四区 | 阴道高潮| 三级波多野结衣护士三级| 欧美黑人狂躁少妇无码中文字幕| 青青草原综合久久大伊人精品| 哦┅┅快┅┅用力啊┅┅殷素素| 久久久久精品免费A片喷水 | 潘金莲一级肉体片| 女王cbt虐茎虐睾丸| 久久久久久精品国产三级护士 | 免费观看高清视频ww| 午夜免费网址| 一级a作爱片免费特黄在线大片| 中文字幕一区二区爆乳嫁中文在线| 国产一区二区三区在线免费观看| 国内精品久久久久久久果冻传媒 | 亚洲熟女少妇一区二区三区| 我和子的乱视频| 国产精品国产三级国产AⅤ入口| 日本吮乳吃奶头XXⅩ视频下载| 91情国产l精品国产亚洲区 | 花与罪在线观看完整版西瓜影视| 午夜福利直播软件| 欧美成人做爰高潮片免费观看6季| 人人爽人人爽人人片A∨2015| 厕所看白屁股| 触手调教女战士3d狂喷水 | 白丝美女被羞羞视频| 普洱|