Bisher wurde pyqtgraph zum Anzeigen und Erstellen von Diagrammen in Python verwendet. Es scheint jedoch, dass es in den letzten 3 Jahren nicht aktualisiert wurde, daher möchte ich trotzdem zu dem von Qt unterstützten wechseln, also QtChart Ich habe versucht, /qtcharts-index.html) zu verwenden.
$ pip install PyQt5
$ pip install PyQtChart
Ich habe etwas geschaffen, bei dem die X-Achse Zeit und die Y-Achse Strom / Spannung ist.
Die Quelle ist wie folgt.
qchart_example.py
import random
import sys
from PyQt5.QtChart import (QChart,
QChartView,
QLineSeries,
QValueAxis,
QDateTimeAxis)
from PyQt5.QtCore import (QDateTime,
Qt)
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import QApplication
app = QApplication(sys.argv)
cur_series = QLineSeries()
vol_series = QLineSeries()
now = QDateTime.currentDateTime()
#Erstellen Sie entsprechende Daten
for i in range(100):
cur = 5 * random.random()
vol = 20 * random.random()
time = now.addSecs(i).toMSecsSinceEpoch() #Verarbeitung zum Anhängen an QLineSeries
cur_series.append(time, cur)
vol_series.append(time, vol)
chart = QChart()
chart.legend().hide()
chart.addSeries(cur_series)
chart.addSeries(vol_series)
#X-Achse erstellen
time_axis_x = QDateTimeAxis()
time_axis_x.setFormat("hh:mm:ss")
chart.addAxis(time_axis_x, Qt.AlignBottom)
cur_series.attachAxis(time_axis_x)
vol_series.attachAxis(time_axis_x)
#Erstellen Sie die Y1-Achse
cur_axis_y = QValueAxis()
cur_axis_y.setTitleText("Current[A]")
cur_axis_y.setLinePenColor(cur_series.pen().color()) #Stellen Sie die Achsen- und Diagrammfarben gleich ein
cur_axis_y.setRange(0, 5)
chart.addAxis(cur_axis_y, Qt.AlignLeft)
cur_series.attachAxis(cur_axis_y)
#Erstellen Sie die Y2-Achse
vol_axis_y = QValueAxis()
vol_axis_y.setTitleText("Voltage[V]")
vol_axis_y.setLinePenColor(vol_series.pen().color()) #Stellen Sie die Achsen- und Diagrammfarben gleich ein
vol_axis_y.setRange(0, 20)
chart.addAxis(vol_axis_y, Qt.AlignRight)
vol_series.attachAxis(vol_axis_y)
cur_vol_chart_view = QChartView()
cur_vol_chart_view.setChart(chart)
cur_vol_chart_view.setRenderHint(QPainter.Antialiasing) #Um das Diagramm reibungslos anzuzeigen
cur_vol_chart_view.show()
sys.exit(app.exec_())
Recommended Posts