Python | PyQtGraphではぐれメタルを描画

PyQtGraph

PythonのPyQtGraphではぐれメタルを描画する方法を説明する。

完成イメージ

コード

#!/usr/bin/env python3

import sys
from PyQt6.QtWidgets import QApplication, QWidget
import pyqtgraph as pg


class GuiWindow(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.グラフを描画する()

    def グラフを描画する(self):
        self.graph = pg.GraphicsLayoutWidget(show=True)
        self.p = self.graph.addPlot()

        # 体
        self.p.plot(x=[10, 20, 30, 40, 50, 60, 70],
                    y=[10,  5,  0,  0,  0,  5, 10],
                    pen=pg.mkPen('gray', width=100))
        self.p.plot(x=[10, 20, 30, 40, 50, 60, 70],
                    y=[15, 15, 10, 10, 10, 15, 20],
                    pen=pg.mkPen('gray', width=100))
        self.p.plot(x=[10, 20, 30, 40, 45, 50, 60, 70],
                    y=[15, 20, 30, 38, 37, 33, 25, 20],
                    pen=pg.mkPen('gray', width=100))
        self.p.plot(x=[20, 30, 40, 50, 60],
                    y=[15, 25, 25, 25, 25],
                    pen=pg.mkPen('gray', width=100))

        # 目
        self.p.plot(x=[35], y=[30],
                    symbol='o', symbolBrush='w', symbolSize=30)
        self.p.plot(x=[35], y=[30],
                    symbol='o', symbolBrush='black', symbolSize=10)
        self.p.plot(x=[45], y=[30],
                    symbol='o', symbolBrush='w', symbolSize=30)
        self.p.plot(x=[45], y=[30],
                    symbol='o', symbolBrush='black', symbolSize=10)

        # 口
        self.p.plot(x=[30, 32, 35, 45, 50],
                    y=[25, 22, 20, 20, 25],
                    pen=pg.mkPen('black', width=20))

        # 泡
        self.p.plot(x=[20], y=[40],
                    symbol='o', symbolBrush='gray', symbolSize=30)
        self.p.plot(x=[40], y=[60],
                    symbol='o', symbolBrush='gray', symbolSize=30)
        self.p.plot(x=[60], y=[50],
                    symbol='o', symbolBrush='gray', symbolSize=30)

        # 枠
        self.p.plot(x=[-10, 100, 100, -10],
                    y=[-10, -10  , 100, 100],
                    pen=pg.mkPen('black', width=5))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = GuiWindow()
    sys.exit(app.exec())

まとめ

PythonのPyQtGraphではぐれメタルを描画する方法を説明した。

コメント