Skip to content

Latest commit

 

History

History
124 lines (95 loc) · 2.78 KB

File metadata and controls

124 lines (95 loc) · 2.78 KB

Matplotlib - グラフ描画と可視化

Matplotlibはグラフを描画するためのライブラリです。シミュレーション結果を可視化して確認するために使います。

基本的なインポート

import numpy as np
import matplotlib.pyplot as plt

折れ線グラフ

最も基本的なグラフです。

# データの準備
t = np.linspace(0, 10, 100)  # 時刻 0〜10秒
y = 100 - 0.5 * 9.8 * t**2   # 自由落下の高度

# グラフの描画
plt.figure(figsize=(8, 5))
plt.plot(t, y)
plt.xlabel("時刻 [s]")
plt.ylabel("高度 [m]")
plt.title("自由落下")
plt.grid(True)
plt.show()

複数の線を描画

t = np.linspace(0, 2*np.pi, 100)

plt.figure(figsize=(8, 5))
plt.plot(t, np.sin(t), label="sin(t)")
plt.plot(t, np.cos(t), label="cos(t)")
plt.xlabel("t [rad]")
plt.ylabel("値")
plt.title("三角関数")
plt.legend()  # 凡例を表示
plt.grid(True)
plt.show()

線のスタイル

t = np.linspace(0, 5, 50)

plt.figure(figsize=(8, 5))
plt.plot(t, t, 'r-', label="実線(赤)")      # 赤い実線
plt.plot(t, t**1.5, 'b--', label="破線(青)")  # 青い破線
plt.plot(t, t**2, 'g:', label="点線(緑)")    # 緑の点線
plt.plot(t, t**2.5, 'ko', label="点(黒)", markersize=3)  # 黒い点
plt.legend()
plt.grid(True)
plt.show()

主なスタイル指定:

  • 色: r(赤), g(緑), b(青), k(黒), m(マゼンタ), c(シアン)
  • 線種: -(実線), --(破線), :(点線), -.(一点鎖線)
  • マーカー: o(丸), s(四角), ^(三角), +(プラス)

複数のグラフ(サブプロット)

t = np.linspace(0, 10, 100)
h = 100 - 0.5 * 9.8 * t**2  # 高度
v = -9.8 * t                 # 速度

fig, axes = plt.subplots(2, 1, figsize=(8, 8))

# 上のグラフ(高度)
axes[0].plot(t, h)
axes[0].set_xlabel("時刻 [s]")
axes[0].set_ylabel("高度 [m]")
axes[0].set_title("高度の時間変化")
axes[0].grid(True)

# 下のグラフ(速度)
axes[1].plot(t, v, 'r')
axes[1].set_xlabel("時刻 [s]")
axes[1].set_ylabel("速度 [m/s]")
axes[1].set_title("速度の時間変化")
axes[1].grid(True)

plt.tight_layout()  # レイアウト調整
plt.show()

グラフの保存

plt.figure(figsize=(8, 5))
plt.plot(t, y)
plt.xlabel("時刻 [s]")
plt.ylabel("高度 [m]")
plt.title("自由落下")
plt.grid(True)

# ファイルに保存
plt.savefig("results/freefall.png", dpi=150)
plt.show()

軸の範囲設定

plt.xlim(0, 10)     # x軸の範囲
plt.ylim(-100, 100)  # y軸の範囲

実行してみよう

scripts/01_python/02_matplotlib_example.py を実行してください:

python scripts/01_python/02_matplotlib_example.py

次章: pandas - データフレームとCSV入出力