カテゴリー
D-Studio プログラム

PyQT・Plot表示

PythonでPyQtを使ったGUI開発。

Plot画面の表示について簡潔にまとめておきます。

class ScanGUI(QWidget):
~
    def initUI(self):

        # グラフ領域
        self.pw = PlotWidget(self)
        # グラフのデータ設定(初期値)
        self.vol_array = np.zeros(10)
        self.cnt_array = np.zeros(10)
        # pyqtgraphにPlot種類とデータを追加
        self.item = pyqtgraph.PlotCurveItem(x=self.cnt_array, y=self.vol_array)
        self.pw.addItem(self.item)
~

ここまではググったらいくらでも出てくるので簡単にグラフ表示はできると思います。今回はグラフをリアルタイムに更新したいのです!

self.pw.addItem(self.item)を繰り返すと?グラフが上書きされます。グチャグチャになります。

            # グラフ更新
            self.item.updateData(x=self.cnt_array, y=self.vol_array)

更新時はこれだけ。updateDataを使います。これでグラフは更新されます。

Plotの基本についてはこちらとか参照。

Pythonの記事も結構ありますので興味ある方はぜひ!

カテゴリー
プログラム

Pythonで座標表示

matplotlibのscatterを利用して座標系の位置を表示

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


import numpy as np
import matplotlib.pyplot as pt

#-------------------------------------------------
## main ###
#-------------------------------------------------
if __name__=='__main__':

    # int型の0で初期化
    fig1 = np.zeros((10,10,2),dtype=np.int)
    fig2 = np.zeros((10,10,2),dtype=np.int)

    fig = pt.figure()
    asp = fig.add_subplot(1, 1, 1)

    for i in range(0,10):
        for j in range(0,10):
            fig1[i][j][0] = j*10
            fig1[i][j][1] = i*10
            fig2[i][j][0] = j*11
            fig2[i][j][1] = i*11
            asp.scatter(fig1[i][j][0], fig1[i][j][1], c='red')
            asp.scatter(fig2[i][j][0], fig2[i][j][1], c='c')

    print(fig1)
    print(fig2)

    asp.grid(True)

    pt.show()