如何解决如何动态更新 PyQt 条形图?
我正在尝试动态创建和更新条形图。我能够创建图表,但在尝试动态更新时出现以下错误。
图表是使用 QChart 创建的。获取来自端口的所有数据的以下错误,并在没有任何动态更新的情况下在最后显示图表。错误说无法添加系列。图表上已有系列。
下面给出的代码。我是 python 和 PyQt5 的新手,任何线索将不胜感激。
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.resize(800,600)
self.s = serial.Serial('/dev/pts/1',9600,timeout=None,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS)
self.set0 = QBarSet('Count')
# set0.append([random.randint(0,999) for i in range(3)])
self.series = QBarSeries()
# self.series.append(self.set0)
self.chart = QChart()
# self.chart.addSeries(self.series)
self.chart.setTitle('Bar Chart Demo')
self.chart.setAnimationOptions(QChart.SeriesAnimations)
months = ('Diamond','Hexagon','Trapezium')
axisX = QBarCategoryAxis()
axisX.append(months)
axisY = QValueAxis()
axisY.setRange(0,1000)
self.chart.addAxis(axisX,Qt.AlignBottom)
self.chart.addAxis(axisY,Qt.AlignLeft)
self.chart.legend().setVisible(True)
self.chart.legend().setAlignment(Qt.AlignBottom)
self.chartView = QChartView(self.chart)
self.setCentralWidget(self.chartView)
self.drawGraph()
def drawGraph(self):
timeout = 50
timeout_start = time.time()
while time.time() < timeout_start + timeout:
time.sleep(1)
cc = self.s.read(15)
ccread = cc.decode("utf-8")
print(ccread)
diamond = ccread[1:4]
hexa = ccread[6:9]
trep = ccread[11:14]
self.set0.append(int(diamond))
self.set0.append(int(hexa))
self.set0.append(int(trep))
self.series.append(self.set0)
self.chart.addSeries(self.series)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。