グラフの描画
今回はpythonでグラフを描画してみます。だんだん楽しくなってきましたね。
まずは何も考えずに以下のコードを書き写してください。
import matplotlib.pyplot as plt
x = [0, 2, 4]
y = [0, 4, 8]
plt.plot(x, y)
plt.show()
こんなグラフが出力されましたか?
そうです。y=2xのグラフです。
コードの解説をしていきます。
import matplotlib.pyplot as plt
はとりあえず、グラフを書くため道具を取ってきたようなものと思ってください。
少し書いておくと、グラフをかくために必要なプログラミングを、先駆者が用意しておいてくれているので、それを利用させていただくためのコードです。今回は「matplotlib.pyplotをimportした」ことになります。
こういう誰でも使える便利プログラミングをライブラリと呼びます。pythonの利点として、このライブラリの豊富さがあります。as pltと付けたので、このライブラリを使うときにはplt.~
と書きます。
x = [0, 2, 4]
y = [0, 4, 8]
は前回やりましたね。xというlistを作成して、中身に0, 2, 4が入っています。yも同様です。
plt.plot(x, y)
で実際にプロットしています。plt.plot()
でライブラリの中のplotという機能を使えます。今回はxとyをプロットしているので、(0,0), (2,4), (4,8)がプロットされます。間は直線で補間してくれていますね。こういう気が利くのもpythonのいいところです。
ここまではPC内部での出来事なので、
plt.show()
で画面に表示します。画面に表示する代わりにPCへ保存することもできますが、今回は表示でいきましょう。
ちょっと変更
同じものが得られますが、以下のように書き換えてみます。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 5, 0.1)
y = 2 * x
plt.plot(x, y)
plt.show()
今回はnumpyというライブラリをimportしていますね。このライブラリを用いて
x = np.arange(0, 5, 0.1)
を実行しています。これは、0~5の範囲で数字を0.1刻みで生成するという意味です。これで先ほどよりも、細かく座標を取れていますね。
yはいちいち手で打つのも面倒なので、計算してもらいましょう。
yを変えて実験してみてください。
$y=sin(x)$のグラフも簡単に描いてもらえます。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
np.pi
で円周率を使えます。sinカーブもnp.sin()
を使うだけ。便利ですね。
グラフの設定
グラフのタイトル、軸ラベル、プロット範囲、凡例など自由に設定できます。学部時代、実験レポート用のグラフをexcelで1枚1枚調整していたのが馬鹿馬鹿しく感じられると思います。
import matplotlib.pyplot as plt
import numpy as np
plt.xlim(0, 2*np.pi)
plt.ylim(-1.1, 1.1)
plt.xlabel('x')
plt.ylabel('y')
plt.title('y=sin()')
x = np.arange(0, 2*np.pi, 0.1)
y1 = np.sin(x)
y2 = np.sin(2*x)
plt.plot(x, y1, label='y=sin(x)')
plt.plot(x, y2, label='y=sin(2x)')
plt.legend(loc='upper right')
plt.show()
こんな調整をしたいと思ったら、その都度調べれば良いです。
chatGPTも精度良く答えてくれるので、ぜひ聞いてみましょう。
例題
好きなグラフを描いてみましょう
いかがでしたか?
プログラミングの便利さがだいぶ実感できたのではないでしょうか。
次回はいよいよ、ボールの投げ上げをシミュレーションしてみます。
- 第0回 はじめに
- 第1回 プログラミングをしてみよう
- 第2回 if文、for文を使ってみよう
- 第3回 グラフを描いてみよう
- 第4回 物理の計算をしてみよう
- 応用編 関数(メソッド)を使ってみよう
- 番外編 環境構築をしてみよう