Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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_Pyqt5_Pyqtgraph - Fatal编程技术网

Python 在pyqtgraph中使用日期或时间

Python 在pyqtgraph中使用日期或时间,python,pyqt5,pyqtgraph,Python,Pyqt5,Pyqtgraph,我试图用pyqtgraph使用X轴中的日期或时间 我试着解决这个问题 但对我来说什么都不管用 这是我的桌子 CREATE TABLE IF NOT EXISTS transactions ( id SERIAL PRIMARY KEY UNIQUE NOT NULL, montant DECIMAL(100,2), medecin VARCHAR, date_d DATE,

我试图用pyqtgraph使用X轴中的日期或时间

我试着解决这个问题 但对我来说什么都不管用

这是我的桌子

CREATE TABLE IF NOT EXISTS transactions (
            id SERIAL PRIMARY KEY  UNIQUE NOT NULL,
            montant DECIMAL(100,2), 
            medecin VARCHAR,
            date_d DATE, 
            time_d TIME,
            users_id INTEGER, 
            FOREIGN KEY(users_id) REFERENCES users(id))
这就是用户界面

<?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>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <widget class="QPushButton" name="pushButton_113">
    <property name="geometry">
     <rect>
      <x>550</x>
      <y>72</y>
      <width>121</width>
      <height>41</height>
     </rect>
    </property>
    <property name="text">
     <string>Recherche</string>
    </property>
   </widget>
   <widget class="QDateEdit" name="dateEdit_19">
    <property name="geometry">
     <rect>
      <x>40</x>
      <y>70</y>
      <width>471</width>
      <height>41</height>
     </rect>
    </property>
    <property name="dateTime">
     <datetime>
      <hour>0</hour>
      <minute>0</minute>
      <second>0</second>
      <year>2020</year>
      <month>1</month>
      <day>1</day>
     </datetime>
    </property>
    <property name="calendarPopup">
     <bool>true</bool>
    </property>
   </widget>
   <widget class="PlotWidget" name="graphicsView_2">
    <property name="geometry">
     <rect>
      <x>60</x>
      <y>130</y>
      <width>691</width>
      <height>391</height>
     </rect>
    </property>
   </widget>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <customwidgets>
  <customwidget>
   <class>PlotWidget</class>
   <extends>QGraphicsView</extends>
   <header location="global">pyqtgraph</header>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>

更新

经过几次尝试后,我能得到的最好结果是图形显示Y轴,但没有像图中那样的X轴

还有别的办法解决这个问题吗

import sys

from PyQt5.QtWidgets import QApplication, QMainWindow
from pyqtgraph import PlotWidget, plot
import pyqtgraph as pg
import pandas as pd
from pandas import *
from datetime import datetime 

import psycopg2

from admin import Ui_MainWindow as ui

class TimeAxisItem(pg.AxisItem):
    def tickStrings(self, values, scale, spacing):
        return [datetime.fromtimestamp(value) for value in values]

class MainApp(QMainWindow, ui):
    def __init__(self):
        QMainWindow.__init__(self)
        self.setupUi(self)
        self.Handel_Buttons()

    def Handel_Buttons(self):
        self.pushButton_113.clicked.connect(self.draw_graph_all)

    def draw_graph_all(self): #pushButton_113
            self.connection = psycopg2.connect(user="postgres",
                                            password="password",
                                            host="localhost",
                                            database="database")
            self.cur = self.connection.cursor()


            self.cur.execute( '''SELECT date_d, SUM(montant) FROM transactions GROUP BY date_d ''')
            rows = self.cur.fetchall()

            date_axis = TimeAxisItem(orientation='bottom')
            self.graphicsView_2 = pg.PlotWidget(axisItems = {'bottom': date_axis})

            date = []
            montant = []

            for row in rows:
                date.append(row[0])
                montant.append(row[1])

            #[x.timestamp() for x in date]
            self.graphicsView_2.plot(x=pd.to_datetime(date), y=montant, pen=None, symbol='o')
            self.setCentralWidget(self.graphicsView_2)
            self.graphicsView_2.show()