[파이썬] PyQt 2D 및 3D 그래픽스

PyQt는 Python에서 사용할 수 있는 강력한 GUI (Graphical User Interface) 프레임워크입니다. PyQt를 사용하면 사용자 친화적인 도구들을 사용하여 다양한 그래픽스 작업을 수행할 수 있습니다. 이 포스트에서는 PyQt를 사용하여 2D 및 3D 그래픽스를 다루는 방법에 대해 살펴보겠습니다.

PyQt의 그래픽스 모듈

PyQt는 PyQtGraph 및 PyQtChart를 비롯하여 다양한 그래픽스 모듈을 제공합니다. PyQtGraph는 고성능 2D 그래픽스 라이브러리로, PyQt를 기반으로 만들어졌습니다. PyQtChart는 Qt의 qcharts 모듈을 PyQt에서 사용하기 쉽게 한 것입니다. 이러한 모듈을 사용하여 데이터 시각화, 차트, 그림 그리기 등 다양한 그래픽스 작업을 수행할 수 있습니다.

PyQtGraph를 사용한 2D 그래픽스

PyQtGraph를 사용하면 간단하고 효율적으로 2D 그래픽스 애플리케이션을 개발할 수 있습니다. 다음은 PyQtGraph를 사용하여 간단한 선 그래프를 그리는 예제 코드입니다.

import pyqtgraph as pg
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys

def draw_graph():
    # 데이터 설정
    x = [1, 2, 3, 4, 5]
    y = [1, 3, 2, 4, 5]

    # 그래프 위젯 생성
    app = QApplication(sys.argv)
    win = QMainWindow()
    win.setWindowTitle("2D 그래프")
    graphWidget = pg.PlotWidget(win)
    win.setCentralWidget(graphWidget)

    # 그래프 그리기
    graphWidget.plot(x, y)

    # 애플리케이션 실행
    win.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    draw_graph()

위 코드는 PyQtGraph의 PlotWidget을 사용하여 x와 y 데이터를 선 그래프로 그리는 간단한 예제입니다. QApplication을 사용하여 애플리케이션을 실행하고, QMainWindow을 사용하여 그래프를 포함하는 창을 생성합니다.

PyQtChart를 사용한 3D 그래픽스

PyQtChart를 사용하면 PyQt에서 간단하게 3D 그래프를 그릴 수 있습니다. 다음은 PyQtChart를 사용하여 간단한 3D 막대 그래프를 그리는 예제 코드입니다.

from PyQt5.QtDataVisualization import (Q3DBars)
from PyQt5.QtGui import (QColor)
from PyQt5.QtWidgets import (QApplication, QMainWindow)
import sys

def draw_3d_graph():
    # 데이터 설정
    data = [
        [0, 1, 2, 3],
        [1, 2, 3, 4],
        [2, 3, 4, 5],
        [3, 4, 5, 6]
    ]

    # 그래프 위젯 생성
    app = QApplication(sys.argv)
    win = QMainWindow()
    win.setWindowTitle("3D 그래프")
    graphWidget = Q3DBars(win)
    win.setCentralWidget(graphWidget)

    # 데이터 설정
    series = QBar3DSeries()
    for i in range(len(data)):
        for j in range(len(data[i])):
            series.dataProxy().addRow([i, j, data[i][j]])

    # 그래프 스타일 설정
    series.setMesh(QAbstract3DSeries.MeshCube)
    series.setItemLabelFormat("@zPoint")
    series.setSingleHighlightColor(QColor("#FF0000"))
    graphWidget.addSeries(series)

    # 그래프 축 설정
    graphWidget.setAxisX(QValue3DAxis())
    graphWidget.setAxisY(QValue3DAxis())
    graphWidget.setAxisZ(QValue3DAxis())
    graphWidget.axisX().setTitle("X")
    graphWidget.axisY().setTitle("Y")
    graphWidget.axisZ().setTitle("Z")

    # 애플리케이션 실행
    win.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    draw_3d_graph()

위 코드는 PyQtChart의 Q3DBars를 사용하여 3D 막대 그래프를 그리는 간단한 예제입니다. QApplication을 사용하여 애플리케이션을 실행하고, QMainWindow을 사용하여 그래프를 포함하는 창을 생성합니다. 그래프 스타일과 축 설정을 통해 그래프를 원하는 방식으로 구성할 수 있습니다.

이것은 PyQt를 사용하여 2D 및 3D 그래픽스를 다루는 기본적인 방법에 대한 간단한 소개였습니다. PyQt는 매우 유연하고 다양한 그래픽스 기능을 제공하기 때문에, 본인의 프로젝트에 맞게 활용할 수 있습니다.