こんにちは
よく理学療法士や作業療法士といったリハビリテーション関連職種の研究での発表資料では、身体の各関節の座標データをスティックピクチャ(棒人間)のように描画していることがあると思います。
あの技術は一見難しいのかなと思われがちですが、pythonのグラフ描画機能であるmatplotlibの機能を駆使することで意外と簡単に作ることができます。
本記事では、pythonの拡張パッケージであるmatplotlibを用いてスティックピクチャを作成する方法について紹介していこうと思います。
matplotlibでスティックピクチャを描画するのには散布図と折れ線グラフを使う。
基本的には散布図は通常通りに使える。
import numpy as np import matplotlib.pyplot as plt #今回用にnumpyで作ったサンプルデータ(このaとかbの部分を自身のデータに置き換える) shoulder = data#ここは各個人の座標データを入れてください。今回はXYの二次元配列座標を想定します。
#1フレーム目の座標を表示する場合
#matplotlibの設定
fig = plt.figure(figsize = (5,5))
ax = fig.add_subplot(111)
ax.scatter(shoulder[:,0],shoulder[:,1])
関節位置をつなぐ場合にはplot関数を使う。
import numpy as np import matplotlib.pyplot as plt #今回用にnumpyで作ったサンプルデータ(このaとかbの部分を自身のデータに置き換える) shoulder = data#ここは各個人の座標データを入れてください。今回はXYの二次元配列座標を想定します。
elbow = data2 #肘の仮想データ※ここは肩と同様に自分自身のデータを入れてください。
#1フレーム目の座標を表示する場合
#matplotlibの設定
fig = plt.figure(figsize = (5,5))
ax = fig.add_subplot(111)
#散布図のプロット
ax.scatter(shoulder[0,0],shoulder[0,1])
ax.scatter(elbaw[0,0],elbow[0,1])
#線で結ぶプロット
ax.plot([[shoulder[0,0],elbaw[0,0]],[shoulder[0,1],elbaw[0,1]]])