Pythonで3Dグラフを描く方法【等電位面を例に】

Python
スポンサーリンク
taniten
taniten

今回はPythonで3Dグラフを描く方法を紹介するよ!

おおっ!物理学科っぽ〜い!

ふうた君
ふうた君
taniten
taniten

物理学生らしく、等電位面を例にして解説していくね!

スポンサーリンク

はじめに

Pythonのインストール

今回はPythonが既にインストールされているものとして話を進めていきます。

まだPythonをインストールしていない方は、以下の記事を参考にインストールしてください。

今回の記事で扱うPythonのバージョンは”Python 3.8.3”です。

pipで必要なパッケージをインストール

3Dグラフを描くためには、必要なパッケージを別途インストールする必要があります。

必要なパッケージは、”NumPy”と”Matplotlib”の2つです。

上の記事でPythonをインストールした方は既にpipが使える状態なので、早速インストールしていきましょう。

taniten
taniten

既にインストール済みの人は先に進んでね!

pipのアップグレード

pipは頻繁に更新が行われているので、まずアップグレードを行なっておきます。

コマンドプロンプトを開いて、以下のコマンドを実行してください。

py -m pip install --upgrade pip

するとアップグレードが行われます。

NumPyとMatplotlibのインストール

pipのインストールが終わったら、”NumPy”と”Matplotlib”の2つをインストールしましょう。
以下の2つのコマンドを実行してください。

py -m pip install numpy
py -m pip install matplotlib

少し時間が経つと、インストールが完了します。

インストールできているかどうかは、以下のコマンドを実行すれば確かめられます。

py -m pip list
taniten
taniten

それじゃあ早速コードを書いていこう!

等電位面を3Dプロットする

電位の式を復習

今回プロットするのは点電荷が作る電位のポテンシャルです。

こちらの記事で解説しているので、詳しく知りたい方はぜひ見てくださいね。

点電荷から距離\(r\)の位置の電位\(V\)は、
$$V\propto \frac{1}{r}$$
のように距離\(r\)に反比例します。

taniten
taniten

今回は比例定数は考えないことにするよ!

3Dグラフのコード

それでは”3Dgraph.py”というファイルを作って、以下のコードを書いてください。

#パッケージのインポート
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

#軸範囲と間隔の設定
x = np.arange(-3., 3., 0.05)
y = np.arange(-3., 3., 0.05)

#メッシュ描画の設定
X, Y = np.meshgrid(x, y)

#電位の計算(r=0で無限に発散しないように0.01を足しています)
Z = 1. / np.sqrt(X*X + Y*Y + 0.01)

#グラフウィンドウの設定
fig = plt.figure()
ax = Axes3D(fig)

#z軸の範囲の設定
ax.set_zlim([0,3])

#軸の目盛りを非表示
ax.set_xticks([])
ax.set_yticks([])
ax.set_zticks([])

#グリッド線や面の色の設定
ax.grid(color="white")
ax.plot_surface(X, Y, Z, cmap="winter")
ax.plot_wireframe(X, Y, Z,color="white",linewidth=0.5)

#グラフを表示
plt.show()

このファイルをコンパイルすると、以下のようなグラフが表示されるはずです。

これで3Dプロットができるようになりました!

軸の範囲や式を自由に変更して、自分が描きたいグラフを書いてみてくださいね。

ちなみにコードの30行目で、3Dグラフ表面のカラーマップを”winter”に設定していますが、ここは以下のサイトを参考に自分の好きなカラーマップに変更してください。

Colormap reference — Matplotlib 3.2.2 documentation

僕も色々な3Dグラフを描いてみようっと!

ふうた君
ふうた君

参考にさせていただいたサイト様

windows10のPythonで3次元グラフを描画するまで - Qiita
Pythonで3次元グラフの描画 なんかいい感じに3次元のグラフを書いてほしいと要望があり,「いい感じに書くにはどうしたらええんや・・・」と調べたら,Pythonのmatplotlibで描画できると出てきました. なので,今回は...
NumPy、pandas、Matplotlib をpipでインストールする方法 | ガンマソフト株式会社
Pythonでデータ分析を行うのに欠かせないのが、NumPy、pandas、Matplotlibの3つのライブラリです。今回はこの3つをpipでインストールする方法を紹介します。 以前は、この3つをW...
【Python入門】pipとは?使い方をわかりやすく解説! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
Pythonではパッケージのインストールを簡単にするために、pipというパッケージ管理ツールが用意されています。 この記事では 【基礎】pipとは 【基礎】バージョンを確認する方法 【基礎】インストール済みパッケージを確認する方法 【実践】パッケージをインストール、アップグレード、アンインストールする方法 【実践】イン...

コメント

タイトルとURLをコピーしました