본문 바로가기

프로그래밍/PyQt5 GUI

67. PyQtChart 줄 그리기

PyQtChart 설치

pip install pyqtchart

LineChart 그리기

67-1 예제:ex66

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtChart import QChart, QChartView, QLineSeries
from PyQt5.QtGui import QPainter

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # data
        series = QLineSeries()
        series.append(0, 0)
        series.append(1, 1)
        series.append(2, 2)

        # chart object
        chart = QChart()
        chart.legend().hide()
        chart.addSeries(series)  # data feeding 데이터 공급

        # displaying chart
        chart_view = QChartView(chart)
        chart_view.setRenderHint(QPainter.Antialiasing)

        # displaying window
        self.setCentralWidget(chart_view)
        # self.setGeometry(300, 300, 800, 600)
        self.setMinimumSize(800, 600)
        self.setWindowTitle("QtChart Foundation")
        self.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyApp()
    sys.exit(app.exec_())

67-2 결과

67-3 예제2

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtChart import QChart, QChartView, QLineSeries
from PyQt5.QtGui import QPainter

class MyApp(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # data
        data = [(0, 6),
                (2, 4),
                (3, 8),
                (7, 4),
                (10, 5),
                (11, 1),
                (13, 3),
                (17, 6),
                (18, 3),
                (20, 2)]
        series = QLineSeries()

        for d in data:
            series.append(*d)

        # chart object
        chart = QChart()
        chart.legend().hide()
        chart.addSeries(series)
        chart.createDefaultAxes()

        # display chart
        chart_view = QChartView(chart)
        chart_view.setRenderHint(QPainter.Antialiasing)

        # display window
        self.setCentralWidget(chart_view)
        self.setMinimumSize(800, 600)
        self.setWindowTitle("QtChart Add Data")
        self.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyApp()
    sys.exit(app.exec_())

67-4 결과