🐍

【Python】Matplotlibの使い方めも

2023/01/21に公開

記事について

Matplotlibのコードを目的別にメモします。

動作環境

Python 3.9.7
JupyterLab 3.2.1

関数のプロット

関数を可視化したい時のコードです。

function_plot.py
import matplotlib.pyplot as plt
import japanize_matplotlib
import numpy as np

x = np.linspace(0, 10,  1001)
y1 = 10*x
y2 = x**2
y3 = x

plt.rcParams["font.size"] = 18 #文字サイズを大きく

plt.plot(x, y1, "k-", label=r"$y=10x$") #ラベルはLaTex表記
plt.plot(x, y2, "k--", label=r"$y=x^{2}$")
plt.plot(x, y3, "k-.", label=r"$y=x$")

plt.xlim(x.min(), x.max())
plt.ylim(y1.min(), y1.max())
plt.title("関数のプロット")
plt.xlabel("x")
plt.ylabel("y")
plt.legend(loc='upper left', bbox_to_anchor=(1, 1))
plt.grid()

plt.savefig('figure.png', bbox_inches='tight') #凡例が見切れないように
plt.show()

2Dコンター図

二次元コンター図で可視化したい時のコードです。

2D_countor.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib

x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)

X, Y = np.meshgrid(x, y) #1次元配列x,yを2次元グリッドに変換

Z = np.sin(np.sqrt(X**2 + Y**2))

plt.rcParams["font.size"] = 18 #文字サイズを大きく

plt.contourf(X, Y, Z, levels=20, cmap='RdBu')
plt.colorbar()

plt.xlabel('X')
plt.ylabel('Y')
plt.title('sin(sqrt(X^2 + Y^2))')

plt.show()

3Dコンター図

三次元コンター図で可視化したい時のコードです。

3D_countor.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib

x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)

X, Y = np.meshgrid(x, y) #1次元配列x,yを2次元グリッドに変換

Z = np.sin(np.sqrt(X**2 + Y**2))

plt.rcParams["font.size"] = 18 #文字サイズを大きく

plt.contourf(X, Y, Z, levels=20, cmap='RdBu')
plt.colorbar()

plt.xlabel('X')
plt.ylabel('Y')
plt.title('sin(sqrt(X^2 + Y^2))')

plt.show()

Discussion