CanSat-India-Updated / GUI / cansat india 3 / testing2.py
testing2.py
Raw
import random
import sys
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QApplication, QMainWindow, QGridLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.animation import FuncAnimation

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("Real-time data plot")
        self.setGeometry(50, 50, 800, 600)

        central_widget = QWidget(self)
        self.setCentralWidget(central_widget)

        # Create a 3x2 grid layout
        grid_layout = QGridLayout(central_widget)

        # Create 6 figures and canvases
        self.figures = [Figure() for _ in range(6)]
        self.canvases = [FigureCanvas(fig) for fig in self.figures]

        # Add the canvases to the grid layout
        for i, canvas in enumerate(self.canvases):
            row, col = i // 2, i % 2
            grid_layout.addWidget(canvas, row, col)

        # Add some content to the figures
        self.lines = []
        for i, fig in enumerate(self.figures):
            ax = fig.add_subplot(111)
            line, = ax.plot([], [], '-o')
            self.lines.append(line)
            ax.set_title("Graph {}".format(i + 1))
            ax.set_xlim(0, 10)
            ax.set_ylim(0, 100)

        # Start the animation
        self.timer = QTimer()
        self.timer.setInterval(50)
        self.timer.timeout.connect(self.update_plots)
        self.timer.start()

    def update_plots(self):
        for i, line in enumerate(self.lines):
            xdata = line.get_xdata()
            ydata = line.get_ydata()
            xdata.append(xdata[-1] + 1 if xdata else 0)
            ydata.append(random.randint(0, 100))
            line.set_data(xdata, ydata)
            self.figures[i].canvas.draw()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())