[파이썬] `PyQt`와 `matplotlib` 통합

PyQt와 matplotlib은 파이썬에서 사용되는 강력한 라이브러리입니다. PyQt는 Qt 프레임워크를 활용하여 GUI 애플리케이션을 개발할 수 있는 도구이며, matplotlib은 데이터 시각화에 사용되는 라이브러리입니다.

PyQt와 matplotlib을 통합하여 사용하면, 파이썬으로 GUI 애플리케이션을 만들면서 동시에 데이터 시각화를 할 수 있습니다. 이를 통해 사용자는 직관적인 인터페이스에서 데이터를 분석하고 시각화할 수 있게 됩니다.

PyQt를 사용하여 GUI 애플리케이션 만들기

먼저, PyQt를 사용하여 간단한 GUI 애플리케이션을 만들어보겠습니다. 아래는 PyQt를 사용하여 “Hello World!”라는 메시지를 출력하는 애플리케이션의 예시입니다.

import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget

app = QApplication(sys.argv)

window = QWidget()
window.setWindowTitle("PyQt App")

label = QLabel(window)
label.setText("Hello World!")
label.setGeometry(100, 100, 200, 50)

window.show()

sys.exit(app.exec_())

실행하면 “Hello World!”라는 메시지가 포함된 창이 나타납니다. PyQt를 사용하여 더 복잡한 인터페이스를 만들 수도 있으며, 버튼, 텍스트 상자, 그림 등 다양한 요소를 추가할 수 있습니다.

matplotlib을 사용하여 데이터 시각화하기

이제 matplotlib을 사용하여 데이터를 시각화하는 방법을 알아보겠습니다. 아래는 간단한 선 그래프를 그리는 예시입니다.

import matplotlib.pyplot as plt

# x, y 데이터
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# 선 그래프 생성
plt.plot(x, y)

# 축 레이블 설정
plt.xlabel("X-axis")
plt.ylabel("Y-axis")

# 그래프 제목 설정
plt.title("Line Graph")

# 그래프 출력
plt.show()

위 코드를 실행하면 x축에는 1부터 5까지의 값이, y축에는 각 x값의 제곱이 표시되는 선 그래프가 출력됩니다.

PyQt와 matplotlib 통합하기

이제 PyQt와 matplotlib을 통합하여 사용하는 방법을 알아보겠습니다. 아래는 PyQt 애플리케이션에서 matplotlib 그래프를 표시하는 예시입니다.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure

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

        # 그래프를 표시할 Figure와 Canvas 생성
        self.figure = Figure()
        self.canvas = FigureCanvas(self.figure)

        # 그래프 생성
        ax = self.figure.add_subplot(111)
        ax.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])

        # Canvas를 메인 윈도우의 레이아웃에 추가
        layout = QVBoxLayout()
        layout.addWidget(self.canvas)

        # 메인 윈도우 설정
        central_widget = QWidget()
        central_widget.setLayout(layout)
        self.setCentralWidget(central_widget)

app = QApplication(sys.argv)

window = MainWindow()
window.show()

sys.exit(app.exec_())

위 코드를 실행하면 PyQt 애플리케이션 창에 matplotlib 그래프가 표시됩니다. 이렇게 하면 PyQt로 표시되는 그래프와 다양한 인터페이스 요소를 조합하여 데이터 시각화 애플리케이션을 만들 수 있습니다.

결론

PyQt와 matplotlib을 통합하여 사용하면 파이썬에서 강력한 GUI 애플리케이션을 만들면서 데이터 시각화를 할 수 있습니다. PyQt를 사용하여 사용자 인터페이스를 만들고, matplotlib을 사용하여 데이터를 시각화하는 방법을 익히면 다양한 애플리케이션을 개발할 수 있습니다.