Проблема с графиком PyQT5

    from PyQt5 import QtWidgets, uic
from PyQt5.QtSerialPort import QSerialPort, QSerialPortInfo
from PyQt5.QtCore import QIODevice
from pyqtgraph import PlotWidget
import pyqtgraph as pg
import sys

# https://stackoverflow.com/questions/35932660/qcombobox-click-event обновление по клику

app = QtWidgets.QApplication([])
ui = uic.loadUi("design.ui")
ui.setWindowTitle("SerialGUI")

serial = QSerialPort()
serial.setBaudRate(115200)
portList = []
ports = QSerialPortInfo().availablePorts()
for port in ports:
    portList.append(port.portName())
ui.comL.addItems(portList)

posX = 200
posY = 100
listX = []
for x in range(100): listX.append(x)
listY = []
for x in range(100): listY.append(0)

def onRead():
    rx = serial.readLine()
    rxs = str(rx, 'utf-8').strip()
    data = rxs.split(',')
    ui.lcdN.display(rxs)
    global listX
    global listY
    listY = listY[1:]
    listY.append(rxs)
    ui.graph.plot(listX. listY)


def onOpen():
    serial.setPortName(ui.comL.currentText())
    serial.open(QIODevice.ReadWrite)

def onClose():
    serial.close()

serial.readyRead.connect(onRead)
ui.openB.clicked.connect(onOpen)
ui.closeB.clicked.connect(onClose)

ui.show()
app.exec()

График не может образоваться, выдает ошибку

ui.graph.plot(listX. listY)
AttributeError: 'list' object has no attribute 'listY'

Что в итоге делать? Я новичок Python, не знаю, что и как. Код design.ui файла:

<?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>553</width>
    <height>314</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <property name="tabShape">
   <enum>QTabWidget::Rounded</enum>
  </property>
  <widget class="QWidget" name="centralwidget">
   <widget class="QLCDNumber" name="lcdN">
    <property name="geometry">
     <rect>
      <x>60</x>
      <y>120</y>
      <width>71</width>
      <height>21</height>
     </rect>
    </property>
   </widget>
   <widget class="PlotWidget" name="graph" native="true">
    <property name="geometry">
     <rect>
      <x>50</x>
      <y>160</y>
      <width>121</width>
      <height>121</height>
     </rect>
    </property>
   </widget>
   <widget class="PlotWidget" name="graph_2" native="true">
    <property name="geometry">
     <rect>
      <x>220</x>
      <y>160</y>
      <width>121</width>
      <height>121</height>
     </rect>
    </property>
   </widget>
   <widget class="PlotWidget" name="graph_3" native="true">
    <property name="geometry">
     <rect>
      <x>380</x>
      <y>160</y>
      <width>121</width>
      <height>121</height>
     </rect>
    </property>
   </widget>
   <widget class="QLCDNumber" name="lcdN_2">
    <property name="geometry">
     <rect>
      <x>250</x>
      <y>120</y>
      <width>71</width>
      <height>21</height>
     </rect>
    </property>
   </widget>
   <widget class="QLCDNumber" name="lcdN_3">
    <property name="geometry">
     <rect>
      <x>410</x>
      <y>120</y>
      <width>71</width>
      <height>21</height>
     </rect>
    </property>
   </widget>
   <widget class="QWidget" name="layoutWidget">
    <property name="geometry">
     <rect>
      <x>80</x>
      <y>30</y>
      <width>381</width>
      <height>61</height>
     </rect>
    </property>
    <layout class="QHBoxLayout" name="horizontalLayout">
     <item>
      <widget class="QComboBox" name="comL"/>
     </item>
     <item>
      <widget class="QPushButton" name="openB">
       <property name="text">
        <string>OPEN</string>
       </property>
      </widget>
     </item>
     <item>
      <widget class="QPushButton" name="closeB">
       <property name="text">
        <string>CLOSE</string>
       </property>
      </widget>
     </item>
    </layout>
   </widget>
   <widget class="QGroupBox" name="groupBox_2">
    <property name="geometry">
     <rect>
      <x>50</x>
      <y>20</y>
      <width>451</width>
      <height>71</height>
     </rect>
    </property>
    <property name="title">
     <string>Serial</string>
    </property>
   </widget>
   <zorder>groupBox_2</zorder>
   <zorder>lcdN</zorder>
   <zorder>graph</zorder>
   <zorder>graph_2</zorder>
   <zorder>graph_3</zorder>
   <zorder>lcdN_2</zorder>
   <zorder>lcdN_3</zorder>
   <zorder>layoutWidget</zorder>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <customwidgets>
  <customwidget>
   <class>PlotWidget</class>
   <extends>QWidget</extends>
   <header>pyqtgraph</header>
   <container>1</container>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections/>
</ui>

Ответы (1 шт):

Автор решения: Nikita Gorodnyansky

Похоже на то что ты в строке

ui.graph.plot(listX. listY)

должен использовать вместо точки запятую. Т.е. передать функции plot 2 списка, по оси X и Y, а вместо этого пытаешься передать атрибут listY у элемента listX. Попробуй

ui.graph.plot(listX, listY)
→ Ссылка