pyqtgraphで表面形状分析グラフの作成


はじめに

X, Y, Z列があるcsvから表面形状画像を作成する画面を作成したので紹介します。

例)
元データ.csv

X Y Z
0.0 0.0 4.0
1.0 0.0 5.0
2.0 0.0 7.0
... ... ...

表示結果

以下に保存しています。

操作可能な動作は次の通りです。

  • 最大100点までの座標間補間
  • 補間方法の選択
    • nearest
    • linear
    • cubic
  • 表面グラフに元データ座標点の表示
  • カラーバーの操作
  • 縦横の断面データ取得
  • 表面データ、断面データのcsv出力

環境

Mac OS
Python 3.8.8

pipでインストールしたもの
colorcet==2.0.6
numpy==1.20.1
pandas==1.2.3
pgcolorbar==1.1.0
PyQt5==5.15.4
pyqtgraph==0.11.1
scipy==1.6.1

動作方法

main.pysurfaceplotフォルダがコードです。
ダウンロードして環境を整えた後、 main.pyを実行してください。
サンプルcsvはsampleフォルダ内に入っています。

.
├── README.md
├── demo
├── export
├── main.py <- これを実行
├── requirements.txt
├── sample <- サンプルcsv有り
├── screenshot
└── surfaceplot <- コード有り

機能紹介

補間

scipy.interpolate.griddataを使用しています。

点数変更

座標間を1 ~ 100分割で補間できます。(1は補間無しの状態)
補間数:1

補間数:100

方法変更

線形、3次スプライン、最近傍補間を選択できます。

元データ座標表示

黒点が元データのX, Y座標です。

csv出力

以下がcsv出力可能です。出力したcsvはexportフォルダに保存されます。

  • 表面画像(座標無)
  • 表面画像(座標有)
  • 横方向断面データ
  • 縦方向断面データ

その他

  • 表示中の断面座標表示(右上)
  • 表面形状データの最大・最小値表示(右下)
  • マウスカーソル点の値表示(断面グラフ内の赤点)