MATLAB,Python,Scilab,Julia比較 その40【波形表示方法②】

MATLAB,Python,Scilab,Julia比較 その40【波形表示方法②】 数値計算
MATLAB,Python,Scilab,Julia比較 その40【波形表示方法②】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/

はじめに

前回はMATLABによる波形表示。
plotとsubplotを使用する。
ラインスタイル、色、マーカを変更することも可能。

今回はこれのPython版

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

Pythonの場合

太郎くん
太郎くん

次はPythonだねー。

フクさん
フクさん

Pythonに関してはmatplotlibを使えばほぼMATLABだな。

太郎くん
太郎くん

確かにかなり似ているというか、ほぼ一緒。

フクさん
フクさん

まぁMATLABユーザに合わせて、似てようなインターフェースにしたという経緯はあるっぽいな。

Matplotlibは、プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像(各種ベクトル画像形式も含む)として保存することもできるし、wxPython、Qt、GTKといった一般的なGUIツールキット製のアプリケーションにグラフの描画機能を組みこむこともできる。MATLABの対話環境のようなものを提供するpylabというインタフェースも持っている。Matplotlibは、BSDスタイルのライセンスの下で配布されている。

Wikipediaより(https://ja.wikipedia.org/wiki/Matplotlib)
太郎くん
太郎くん

まぁ似せてもらえるのはありがたいよね。

波形表示

フクさん
フクさん

まずは単純な波形表示

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x=np.linspace(0,2*np.pi,200)
>>> plt.plot(x,np.sin(x),'--r')
>>> plt.plot(x,np.cos(x),'-.b')
>>> plt.show()
太郎くん
太郎くん

matplotlibが使えるようにimportが必要で、
pltのエイリアスを定義するのが通例っぽいね。

フクさん
フクさん

そうだね。
あと、MATLABと異なる点としてはplt.show()を呼び出した段階で表示されるという点。
よって、MATLABのhold onに相当する仕様はない。
というか常にhold onと思っても良いかもね。

太郎くん
太郎くん

まぁこっちの方が直感的な使い方な感じはするよね。

波形表示(複数グラフ)

太郎くん
太郎くん

matplotlibもMATLABみたいに複数の波形を同一Windowsに出せたよね?

フクさん
フクさん

そうそう。
こっちはやや複雑な書き方にはなるが、慣れの問題だろう。
MATLABの時のように縦に2つ、横3つの構成で出してみよう。

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x=np.linspace(0,2*np.pi,200)
>>> fig = plt.figure()
>>> ax = fig.add_subplot(2,3,1)
>>> ax.plot(x,np.sin(x),'--r')
>>> ax = fig.add_subplot(2,3,2)
>>> ax.plot(x,np.cos(x),'-.b')
>>> ax = fig.add_subplot(2,3,3)
>>> ax.plot(x,np.sin(x),'--r')
>>> ax = fig.add_subplot(2,3,4)
>>> ax.plot(x,np.cos(x),'-.b')
>>> ax = fig.add_subplot(2,3,5)
>>> ax.plot(x,np.sin(x),'--r')
>>> ax = fig.add_subplot(2,3,6)
>>> ax.plot(x,np.cos(x),'-.b')
>>> plt.show()
matplotlib複数グラフ、add_subplot、figure、plot

ラインスタイル

フクさん
フクさん

ラインスタイルも指定できるが、MATLAB一緒なだな。

指定子線種
‘-‘実線 (既定の設定)
‘–‘破線
‘:’点線
‘-.’一点鎖線

色指定

太郎くん
太郎くん

色指定もMATLABと一緒だったと思う。

指定子
b青 (Blue)
g緑 (Green)
r赤 (Red)
cシアン (Cyan)
mマゼンタ (Magenta)
y黄 (Yellow)
k黒 (Black)
w白 (White)

マーカ指定

フクさん
フクさん

マーカ指定もおおよそ一緒だな。
まぁMATLABには無いのもあるけど、使うことは少ないかな。

指定子マーカタイプ
“.”
“,”四角形
“o”
“v”下向き三角形
“^”上向き三角形
“<“左向き三角形
“>”右向き三角形
“1”Y 字
“2”Y 字 (上下反転)
“3”Y 字 (90 度時計回り)
“4”Y 字 (90 度反時計回り)
“8”八角形
“s”四角形
“p”五角形
“*”星印
“h”六角形 (縦長)
“H”六角形 (横長)
“+”プラス (+) 印
“x”バツ (×) 印
“D”菱形 (ダイヤモンド)
“d”細い菱形 (ダイヤモンド)
“|”縦線
“_”横線
“None”マーカーなし
Noneマーカーなし
” “マーカーなし
“”マーカーなし
‘$…$’Mathtext を用いて数式やギリシャ文字を指定

まとめ

フクさん
フクさん

まとめだよ。

  • pythonで波形表示する場合はmatplotlibを使用する。
  • matplotlibはMATLAB仕様に合わせこんでくれている。
    • マーカに関しては、MATLABにはない指定子もある。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました