前回はPYTHONで回路図を作成しましたが、今回はグラフを作成してみたいと思います。
何のグラフを作成するかというと、下記の交流回路での電流のグラフです。
交流回路のグラフを選んだ理由は、交流回路のレジスタンス、リアクタンスの電流の位相の変化をグラフで表示させてみるのが面白いと思ったからです。
上記の回路図の抵抗に流れる電流、コイルに流れる電流、この2つの合成電流のグラフをPYTHONを使用してグラフを作成したいと思います。

では、早速始めてみましょう。
ライブラリ『matplotlib』と『numpy』を使用
今回、グラフを作成する為に、『matplotlib』と『numpy』のライブラリを使用します。『matplotlib』はグラフを作画するライブラリです。『numpy』はご存知の通り、数値計算を行うライブラリで、今回は作画するグラフの座標データを保管する為に使用します。
インストールされていなければ、下記のコマンドを実施して下さい。もしインストールされているか分からなければ、下記のコマンドを実施しても、インストールされていれば、インストールされていることがメッセージとして出力されるので問題ありません。
1 2 |
pip install matplotlib pip install numpy |
グラフを表示するソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0,360*2,181) regraph = 10 * np.sin(x*np.pi/180) cograph = 10 * np.sin(x*np.pi/180 - np.pi/2) tograph= regraph + cograph plt.plot(x,regraph, color='red', linewidth = 1) plt.plot(x,cograph, color='blue', linewidth = 1) plt.plot(x,tograph, color='purple', linewidth = 2) plt.xlabel('time') plt.ylabel('current(A)') plt.grid('true') plt.show() |
グラフを作成する為には、プロットする座標点を準備しなければなりません。
今回は、時間を0秒から2pi(秒)の範囲で、181個に区切って、その時の電流をプロットします。
なので、時間の座標点は[0, 4, 8, 12, 16, ,,,,,, 704, 708, 712, 716, 720]となります。この座標点を作る為に4行目を実行します。
4行目:『np.linspace』は等差数列と呼ばれています。
この関数は、linspace(開始、終了、差分)という変数で成り立ち、等差数列を作成します。
np.linspace(0,360*2,181)という式から、0から開始して、720で終わる、その間は181分割する数列を作ります。
そうすると、数列は[0, 4, 8, 12, 16, ,,,,,, 704, 708, 712, 716, 720]になります。これで、時間列の座標は準備出来ました。次は、数列内の値に対しての抵抗、コイル、合成の電流を求める事になります。
5行目:抵抗の電流値です。。抵抗の電流は三角関数のsinで表します。100Vに10オームの抵抗なので、10Aのsin関数になります。
np.sin()、np.piはnumpyの関数です。sinとそのまま記述しても、sin関数とは解釈されないので、np.sin()とします。np.piはπラジアン(180)になります。これも、piと記述してもπラジアンとして認識されないので、np.piとします。
6行目:コイルの電流値です。コイルの電流は抵抗の電流の位相より90度遅れるので、90度引いています。
9~11行目:プロットをしていきます。座標点を線で繋げていきます。
plot(x軸、y軸、グラフの色、グラフの太さ)を定義します。どのグラフかを区別を付ける為に、色や太さを変更してみて下さい。
13, 14行目:x軸、y軸に名前(ラベル)を付けます。
15行目:グラフにグリッドを表示させます。
16行目:これが一番重要です。showでグラフを表示させます。
以上で完成です。
まとめ
いかがだったでしょうか。
大体のグラフの作成手順は理解できたでしょうか。
座標点の数が多いほど、正確なグラフを作成することが出来ます。是非、色々なグラフを作成してみて下さい。おススメは、今回のような電流の合成グラフですが、tanのグラフなども面白いと思います。
次回は散布図のグラフの作成を説明します。
コメント