matplotlibを使って3Dグラフを表示しよう
今回はmatplotlibを使って、簡単な3Dのグラフを表示してみましょう。
この記事では、matplotlibで簡単な3Dグラフを表示するやり方を説明していますので、細かな仕様などが気になる方は、以下の公式サイトを参照してください。
3Dグラフを表示する基本コード
3Dグラフを表示するには、ツールキットのmplot3d APIを使います。
ツールキットは標準でmatplotlibに入っていますので、別途インストールする必要はありません。
3Dグラフの基本的な書き方は、以下のようになります。
3Dグラフの基本コード
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
figureインスタンスを作成して、add_subplot()メソッドで3D用の軸を追加します。
add_subplot()メソッドの第1引数の「111」は、行、列、インデックスを表しています。
例えば、「224」と書いた場合は、2行2列の4番目のインデックスという意味になります。(画面が4分割され、グラフは右下に表示されます)
また、デフォルトは「111」なので、省略することができます。
メモ
matplotlibバージョン3.2.0以前は、「from mpl_toolkits.mplot3d import Axes3D」も記述しなければなりませんでしたが、現在のバージョンでは不要です。
3Dグラフを表示するプログラム
簡単な3Dグラフを表示するプログラムは、以下の通りです。
X軸、Y軸に1~9の値を入れ、Z軸に適当な値を入れています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
### インポート import matplotlib.pyplot as plt ### オブジェクト作成 fig = plt.figure() ### 3D用軸追加 ax = fig.add_subplot(111, projection='3d') ### X軸、Y軸値設定 x = y = [i for i in range(1,10)] ### Z軸値設定 z = [1, 7, 7, 5, 4, 9, 1, 6, 2] ### グラフ設定 ax.plot(x, y, z) ### グラフ表示 plt.show() |
プログラムを実行すると、以下のような3Dグラフが表示されます。
散布を表示するプログラム
次は散布を表示するプログラムです。
scatter()メソッドを使うことによって、散布図が表示できます。
ランダムで3軸に値を設定して、100個分のポイントを表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
### インポート import random import matplotlib.pyplot as plt ### オブジェクト作成 fig = plt.figure() ### 3D用軸追加 ax = fig.add_subplot(111, projection='3d') ### 100個分の値を設定 for i in range(100): ### ランダムで各軸に値を設定 x = random.randrange(10) y = random.randrange(10) z = random.randrange(10) ### 散布表示 ax.scatter(x, y, z) ### グラフ表示 plt.show() |
プログラムを実行すると、以下のような3Dグラフが表示されます。