Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyqtgraph-如何添加轴日期时间?_Python_Pyqt_Pyqt5_Pyqtgraph - Fatal编程技术网

Python Pyqtgraph-如何添加轴日期时间?

Python Pyqtgraph-如何添加轴日期时间?,python,pyqt,pyqt5,pyqtgraph,Python,Pyqt,Pyqt5,Pyqtgraph,该示例使用文件'QtChart.ui'(这很重要)Pyqtgraph的小部件嵌入其中(这也很重要) 问题: 将显示图形,但将显示自历元开始以来的秒数,而不是日期-时间轴 我设置变量axis=pg.DateAxisItem(orientation='bottom') 在下面的示例中,应该将它添加到这样一行pw=pg.PlotWidget(viewBox=vb,axitems={'bottom':axis}),但我的代码中没有这样一行 如何设置日期-时间轴而不是从纪元开始的秒数? 代码: impor

该示例使用文件'QtChart.ui'(这很重要)Pyqtgraph的小部件嵌入其中(这也很重要)

问题: 将显示图形,但将显示自历元开始以来的秒数,而不是日期-时间轴

我设置变量
axis=pg.DateAxisItem(orientation='bottom')
在下面的示例中,应该将它添加到这样一行
pw=pg.PlotWidget(viewBox=vb,axitems={'bottom':axis})
,但我的代码中没有这样一行

如何设置日期-时间轴而不是从纪元开始的秒数?

代码:

import random
import sys
from PyQt5.QtCore import *
from PyQt5 import QtWidgets, uic
from PyQt5.QtWidgets import QMainWindow
import time
import pyqtgraph as pg

x = []
y = []

class draw_interface(QMainWindow):
    def __init__(self):
        super(draw_interface, self).__init__()
        uic.loadUi('QtChart.ui', self)

        self.timer_update_events = QTimer()
        self.timer_update_events.timeout.connect(self.update_chart)
        self.timer_update_events.start(1000)

        axis = pg.DateAxisItem(orientation='bottom')

        self.line = pg.PlotCurveItem(clear=True, pen="g")
        self.widget.addItem(self.line)

        self.show()

    def update_chart(self):
        global x, y

        x.append(time.time())
        y.append(random.uniform(0, 1))
        self.line.setData(x, y)

my_app = QtWidgets.QApplication([])
my_main_window = draw_interface()
sys.exit(my_app.exec_())
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>1319</width>
    <height>1091</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QHBoxLayout" name="horizontalLayout">
    <item>
     <layout class="QGridLayout" name="gridLayout">
      <property name="leftMargin">
       <number>10</number>
      </property>
      <property name="topMargin">
       <number>10</number>
      </property>
      <property name="rightMargin">
       <number>10</number>
      </property>
      <property name="bottomMargin">
       <number>10</number>
      </property>
      <item row="0" column="0">
       <widget class="QFrame" name="frame_2">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="maximumSize">
         <size>
          <width>200</width>
          <height>16777215</height>
         </size>
        </property>
        <property name="frameShape">
         <enum>QFrame::StyledPanel</enum>
        </property>
        <property name="frameShadow">
         <enum>QFrame::Raised</enum>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
       <widget class="PlotWidget" name="widget" native="true"/>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>1319</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <customwidgets>
  <customwidget>
   <class>PlotWidget</class>
   <extends>QWidget</extends>
   <header location="global">pyqtgraph</header>
   <container>1</container>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>
和代码“QtChart.ui”:

import random
import sys
from PyQt5.QtCore import *
from PyQt5 import QtWidgets, uic
from PyQt5.QtWidgets import QMainWindow
import time
import pyqtgraph as pg

x = []
y = []

class draw_interface(QMainWindow):
    def __init__(self):
        super(draw_interface, self).__init__()
        uic.loadUi('QtChart.ui', self)

        self.timer_update_events = QTimer()
        self.timer_update_events.timeout.connect(self.update_chart)
        self.timer_update_events.start(1000)

        axis = pg.DateAxisItem(orientation='bottom')

        self.line = pg.PlotCurveItem(clear=True, pen="g")
        self.widget.addItem(self.line)

        self.show()

    def update_chart(self):
        global x, y

        x.append(time.time())
        y.append(random.uniform(0, 1))
        self.line.setData(x, y)

my_app = QtWidgets.QApplication([])
my_main_window = draw_interface()
sys.exit(my_app.exec_())
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>1319</width>
    <height>1091</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QHBoxLayout" name="horizontalLayout">
    <item>
     <layout class="QGridLayout" name="gridLayout">
      <property name="leftMargin">
       <number>10</number>
      </property>
      <property name="topMargin">
       <number>10</number>
      </property>
      <property name="rightMargin">
       <number>10</number>
      </property>
      <property name="bottomMargin">
       <number>10</number>
      </property>
      <item row="0" column="0">
       <widget class="QFrame" name="frame_2">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="maximumSize">
         <size>
          <width>200</width>
          <height>16777215</height>
         </size>
        </property>
        <property name="frameShape">
         <enum>QFrame::StyledPanel</enum>
        </property>
        <property name="frameShadow">
         <enum>QFrame::Raised</enum>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
       <widget class="PlotWidget" name="widget" native="true"/>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>1319</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <customwidgets>
  <customwidget>
   <class>PlotWidget</class>
   <extends>QWidget</extends>
   <header location="global">pyqtgraph</header>
   <container>1</container>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>

主窗口
0
0
1319
1091
主窗口
10
10
10
10
0
0
200
16777215
QFrame::StyledPanel
QFrame::提出
0
0
1319
21
PlotWidget
QWidget
pyqtgraph
1.

您必须使用
setAxisItems()
方法:

# ...
axis = pg.DateAxisItem(orientation='bottom')
self.line = pg.PlotCurveItem(clear=True, pen="g")
self.widget.addItem(self.line)
self.widget.setAxisItems({"bottom": axis})
# ...
#。。。
axis=pg.DateAxisItem(方向=“底部”)
self.line=pg.PlotCurveItem(clear=True,pen=“g”)
self.widget.addItem(self.line)
self.widget.setAxisItems({“bottom”:axis})
#…