kanta's spike

プログラムの処理中に出てくる数式の意味を理解するために、Pythonでグラフを描いて数式を確認したい。

解決策

numpymatplotlib を使ってグラフを表示する。

折れ線グラフ

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

# BIZ UDGothic https://github.com/googlefonts/morisawa-biz-ud-gothic
matplotlib.rc('font', **{'family': 'BIZ UDGothic'})

x = np.arange(-1 * np.pi, np.pi, 0.1)

y = np.sin(x)

plt.plot(x, y)

plt.title("sin")
plt.xlabel('x')
plt.ylabel('sin(x)')

plt.show()
  • 実際のグラフ

sin

3次元グラフ

import matplotlib
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np

matplotlib.rc('font', **{'family': 'BIZ UDGothic'})

RADIUS = 365


def atan2(x, y):
    z = (np.arctan2(-1 * x,  y) + np.pi) / (np.pi * 2)

    for i in range(x.shape[0]):
        for j in range(y.shape[0]):
            if (x[i, i] ** 2 + y[j, j] ** 2) ** 0.5 > RADIUS:
                z[i][j] = np.nan
    return z


x = np.arange(-1 * RADIUS, RADIUS, 1)
y = np.arange(-1 * RADIUS, RADIUS, 1)


xx, yy = np.meshgrid(x, y)
z = atan2(xx, yy)

axes = plt.axes(projection='3d')
axes.plot_surface(xx, yy, z, cmap=cm.hsv)
axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_zlabel('atan2')
plt.show()
  • 実際のグラフ atan2

まとめ

登場したAPIは以下になる。

モジュール/パッケージ API 説明
matplotlib rc 1 matplotlibの設定パラメータを更新する。第1引数に設定のグループ名を指定し、更新する設定値をキーワード引数で指定する。
matplotlib.pyplot plot 2 x,yの座標を線やマーカーとしてプロットする。
title 3 グラフのタイトルを設定する。
xlabel 4 X軸のラベルを設定する。
ylabel 5 Y軸のラベルを設定する。
show 6 用意したすべての図を表示する。
axes 7 図のグラフを管理するオブジェクト。
numpy arange 8 指定された間隔の数例を返す。
sin 9 指定された array_lineな引数の各要素のsinを求める。
meshgrid 10 座標ベクトルから座標行列のリストを返す。

登場した用語は以下になる。

分類 用語 説明
Python文法 引数リストのアンパック 11 **オペレーターを使って、辞書をアンパックし、キーワード引数として利用することができる。

参考

作成日: 2022/07/31