[Python에 의한 과학·기술 계산] 3차원 곡면의 묘화, 서페이스, 와이어프레임, 가시화, matplotlib
8037 단어 파이썬matplotlib과학 기술 계산시각화계산 물리학
소개
matplotlib를 사용하여 3차원 곡면으로 표현할 수 있는 함수 $z = e^{-(x^2+y^2)}$를 플롯한다.
plot_surface나 plot_wireframe을 사용한다.
코드
(1) surface plot
"""
3次元曲面のプロット例
z=exp(-(x^2+y^2))
"""
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure() #プロット領域の作成
ax = fig.gca(projection='3d') #プロット中の軸の取得。gca は"Get Current Axes" の略。
x = np.arange(-2, 2, 0.05) # x点として[-2, 2]まで0.05刻みでサンプル
y = np.arange(-2, 2, 0.05) # y点として[-2, 2]まで0.05刻みでサンプル
x, y = np.meshgrid(x, y) # 上述のサンプリング点(x,y)を使ったメッシュ生成
z = np.exp(-(x**2 + y**2)) #exp(-(x^2+y^2)) を計算してzz座標へ格納する。
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='hsv', linewidth=0.3) # 曲面のプロット。rstrideとcstrideはステップサイズ,cmapは彩色,linewidthは曲面のメッシュの線の太さ,をそれぞれ表す。
plt.show() # 絵の出力。
결과(1)
(2) 와이어 프레임 표시
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure() #プロット領域の作成
ax = fig.gca(projection='3d') #プロット中の軸の取得。gca は"Get Current Axes" の略。
x = np.arange(-2, 2, 0.05) # x点として[-2, 2]まで0.05刻みでサンプル
y = np.arange(-2, 2, 0.05) # y点として[-2, 2]まで0.05刻みでサンプル
x, y = np.meshgrid(x, y) # 上述のサンプリング点(x,y)を使ったメッシュ生成
z = np.exp(-(x**2 + y**2)) #exp(-(x^2+y^2)) を計算してzz座標へ格納する。
ax.set_zlim(0.0,1.0)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.plot_wireframe(x, y, z, color='blue',linewidth=0.3) # ワイヤーフレームのプロット。linewidthは曲面のメッシュの線の太さ,をそれぞれ表す。
plt.show() # 絵の出力。
결과(2)
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 3차원 곡면의 묘화, 서페이스, 와이어프레임, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sci_Haru/items/ae54f90e53ccc959d3cb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(1) surface plot
"""
3次元曲面のプロット例
z=exp(-(x^2+y^2))
"""
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure() #プロット領域の作成
ax = fig.gca(projection='3d') #プロット中の軸の取得。gca は"Get Current Axes" の略。
x = np.arange(-2, 2, 0.05) # x点として[-2, 2]まで0.05刻みでサンプル
y = np.arange(-2, 2, 0.05) # y点として[-2, 2]まで0.05刻みでサンプル
x, y = np.meshgrid(x, y) # 上述のサンプリング点(x,y)を使ったメッシュ生成
z = np.exp(-(x**2 + y**2)) #exp(-(x^2+y^2)) を計算してzz座標へ格納する。
ax.plot_surface(x, y, z, rstride=1, cstride=1, cmap='hsv', linewidth=0.3) # 曲面のプロット。rstrideとcstrideはステップサイズ,cmapは彩色,linewidthは曲面のメッシュの線の太さ,をそれぞれ表す。
plt.show() # 絵の出力。
결과(1)
(2) 와이어 프레임 표시
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure() #プロット領域の作成
ax = fig.gca(projection='3d') #プロット中の軸の取得。gca は"Get Current Axes" の略。
x = np.arange(-2, 2, 0.05) # x点として[-2, 2]まで0.05刻みでサンプル
y = np.arange(-2, 2, 0.05) # y点として[-2, 2]まで0.05刻みでサンプル
x, y = np.meshgrid(x, y) # 上述のサンプリング点(x,y)を使ったメッシュ生成
z = np.exp(-(x**2 + y**2)) #exp(-(x^2+y^2)) を計算してzz座標へ格納する。
ax.set_zlim(0.0,1.0)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.plot_wireframe(x, y, z, color='blue',linewidth=0.3) # ワイヤーフレームのプロット。linewidthは曲面のメッシュの線の太さ,をそれぞれ表す。
plt.show() # 絵の出力。
결과(2)
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 3차원 곡면의 묘화, 서페이스, 와이어프레임, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sci_Haru/items/ae54f90e53ccc959d3cb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure() #プロット領域の作成
ax = fig.gca(projection='3d') #プロット中の軸の取得。gca は"Get Current Axes" の略。
x = np.arange(-2, 2, 0.05) # x点として[-2, 2]まで0.05刻みでサンプル
y = np.arange(-2, 2, 0.05) # y点として[-2, 2]まで0.05刻みでサンプル
x, y = np.meshgrid(x, y) # 上述のサンプリング点(x,y)を使ったメッシュ生成
z = np.exp(-(x**2 + y**2)) #exp(-(x^2+y^2)) を計算してzz座標へ格納する。
ax.set_zlim(0.0,1.0)
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.plot_wireframe(x, y, z, color='blue',linewidth=0.3) # ワイヤーフレームのプロット。linewidthは曲面のメッシュの線の太さ,をそれぞれ表す。
plt.show() # 絵の出力。
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 3차원 곡면의 묘화, 서페이스, 와이어프레임, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sci_Haru/items/ae54f90e53ccc959d3cb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)