Return to コンピュータ演習

Python でグラフ作成

SymPy Plotting Backends でグラフ作成:The Graphic Module 編

ここでは,SymPy Plotting Backends (SPB) の The Graphic Module を使った 2次元グラフ作成について説明します。

SymPy Plotting Backends (SPB) の Plot functions を使った 2次元グラフ作成については,以下のページで説明しています。

  • SymPy Plotting Backends でグラフ作成:Plot functions 編

Python の SymPy 自身にもグラフ作成機能はありますが,SymPy Plotting Backends (SPB) は,言わばその機能拡張版に相当します。 SPB によるグラフ作成には,The Graphics Module による方法と,Plot functions による方法の2種類の方法があります。ドキュメントによると,The Graphics Module のほうがより直感的で簡単であり,異なったグラフを重ねて表示させることも簡単にできるのでオススメのようです。Plot functions による方法は今後はアップデートされないようです。

Matplotlib でグラフ作成:ax 編

Python の Matplotlib によるグラフ作成には,plt.*** という関数を使った plt (pyplot) 流(pyplot インターフェースとも)と,ax.*** という関数を使った ax 流(オブジェクト指向インターフェースとも)の2つの方法があります。

ここでは,ax 流で ax.*** のみを使ってグラフを作成する方法についてまとめておきます。

plt (pyplot) 流で plt.*** のみを使ってグラフを作成する方法については,以下のページにまとめています。

  • Matplotlib でグラフ作成:plt 編

Matplotlib で作成したグラフをアニメーションに:ax 編

「Matplotlib でグラフ作成:ax 編」で解説した方法,つまり ax.*** のみで作成したグラフを,matplotlib.animation.FuncAnimation() でパラパラアニメにする。

「Matplotlib でグラフ作成:plt 編」で解説した方法,つまり plt.*** のみで作成したグラフを使ってアニメ化する方法は,以下のページにまとめています。

  • Matplotlib で作成したグラフをアニメーションに:plt 編

ライブラリの import と初期設定

必要なライブラリを import します。Matplotlib の FuncAnimation() を使ってアニメーションを作成してみます。

In [1]: import numpy as np import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator from matplotlib.animation import FuncAnimation # 以下はグラフを SVG で Notebook にインライン表示させる設定 %config InlineBackend.figure_formats = [‘svg’] # mathtext font の設定 plt.rcParams[‘mathtext.fontset’] = ‘cm’ # デフォルトの figsize の設定変更は, # 一度何か描いてからにするとよいようだ。 plt.rcParams[“figure.figsize”] = [6.4, 4.8] Matplotlib でグラフを描くおさらい:ax 編

「Matplotlib でグラフ作成:ax 編」を参照。

基本形:

# ax を使う際の最初のおまじない fig, ax = plt.subplots() ax.plot([x0, x1, …, xn], [y0, y1, …, yn]); 斜方投射の軌道をパラパラアニメにする 運動方程式

水平方向を $x$, 鉛直上向きを $y$ として,運動方程式は重力加速度の大きさを $g$ として

\begin{eqnarray} \frac{d^2 x}{dt^2} &=& 0 \\ \frac{d^2 y}{dt^2} &=& -g …