[Python에 의한 과학·기술 계산] 2차원(컬러) 등고선 등의 묘화, 가시화, matplotlib
15945 단어 파이썬matplotlib과학 기술 계산시각화계산 물리학
소개
matplotlib의 pcolor, imshow, contour 메소드를 사용하여 등고선 다이어그램을 만듭니다.
추가:
2017년 8월 28일: pcolormesh와 contour를 믹스한 내용(4)을 추가했다.
내용
(1) $z=sin(x)+cos(y)$를 생각하고 그것을 [0, x, 10], [0, y, 10]의 범위에서 pcolor로 그린다.
pcolormesh를 사용하고 있습니다. pcolor()보다 빠릅니다.
(2) impshow를 사용한 드로잉 예
(3) contor를 사용한 등고선도
(4) pcolormesh와 contour를 믹스한 그림
예 (1) : pcolormesh 사용
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
plt.pcolormesh(X, Y, Z, cmap='hsv') # 等高線図の生成。cmapで色付けの規則を指定する。
#plt.pcolor(X, Y, Z, cmap='hsv') # 等高線図の生成。cmapで色付けの規則を指定する。
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
결과 (1) : pcolormesh를 사용한 다이어그램
예 (2) : impshow 사용
2차원 배열을 서서히 가시화하고 싶은 경우는 matplotlib.pyplot.imshow()를 사용하면 좋다.
import numpy as np
import matplotlib.pyplot as plt
z=np.zeros([100,100])
for i in range(100):
for j in range(100):
z[i,j] = i+j
plt.imshow(z)
plt.colorbar () # カラーバーの表示
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
결과 (2): impshow
예 (3) contour를 사용한 등고선도
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, Vmax=1,colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
결과(3): contour 다이어그램
예 (4) pcolormesh와 contour의 믹스
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, vmin=-1,vmax=1, colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.pcolormesh(X,Y,Z, cmap='cool') #カラー等高線図
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontsize=24)
plt.show()
결과 (4) : pcolormesh와 contour의 혼합
[부록]
컬러맵 지정의 cmap로 패턴을 지정한다. 패턴은 수십 종류 준비되어 있다. 여기에 샘플이 있습니다.
'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern',
'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', 'hsv',
'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar'
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 2차원(컬러) 등고선 등의 묘화, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sci_Haru/items/5b4c34d5330a545001cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(1) $z=sin(x)+cos(y)$를 생각하고 그것을 [0, x, 10], [0, y, 10]의 범위에서 pcolor로 그린다.
pcolormesh를 사용하고 있습니다. pcolor()보다 빠릅니다.
(2) impshow를 사용한 드로잉 예
(3) contor를 사용한 등고선도
(4) pcolormesh와 contour를 믹스한 그림
예 (1) : pcolormesh 사용
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
plt.pcolormesh(X, Y, Z, cmap='hsv') # 等高線図の生成。cmapで色付けの規則を指定する。
#plt.pcolor(X, Y, Z, cmap='hsv') # 等高線図の生成。cmapで色付けの規則を指定する。
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
결과 (1) : pcolormesh를 사용한 다이어그램
예 (2) : impshow 사용
2차원 배열을 서서히 가시화하고 싶은 경우는 matplotlib.pyplot.imshow()를 사용하면 좋다.
import numpy as np
import matplotlib.pyplot as plt
z=np.zeros([100,100])
for i in range(100):
for j in range(100):
z[i,j] = i+j
plt.imshow(z)
plt.colorbar () # カラーバーの表示
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
결과 (2): impshow
예 (3) contour를 사용한 등고선도
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, Vmax=1,colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
결과(3): contour 다이어그램
예 (4) pcolormesh와 contour의 믹스
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, vmin=-1,vmax=1, colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.pcolormesh(X,Y,Z, cmap='cool') #カラー等高線図
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontsize=24)
plt.show()
결과 (4) : pcolormesh와 contour의 혼합
[부록]
컬러맵 지정의 cmap로 패턴을 지정한다. 패턴은 수십 종류 준비되어 있다. 여기에 샘플이 있습니다.
'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern',
'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', 'hsv',
'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar'
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 2차원(컬러) 등고선 등의 묘화, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sci_Haru/items/5b4c34d5330a545001cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
plt.pcolormesh(X, Y, Z, cmap='hsv') # 等高線図の生成。cmapで色付けの規則を指定する。
#plt.pcolor(X, Y, Z, cmap='hsv') # 等高線図の生成。cmapで色付けの規則を指定する。
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
예 (2) : impshow 사용
2차원 배열을 서서히 가시화하고 싶은 경우는 matplotlib.pyplot.imshow()를 사용하면 좋다.
import numpy as np
import matplotlib.pyplot as plt
z=np.zeros([100,100])
for i in range(100):
for j in range(100):
z[i,j] = i+j
plt.imshow(z)
plt.colorbar () # カラーバーの表示
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
결과 (2): impshow
예 (3) contour를 사용한 등고선도
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, Vmax=1,colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
결과(3): contour 다이어그램
예 (4) pcolormesh와 contour의 믹스
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, vmin=-1,vmax=1, colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.pcolormesh(X,Y,Z, cmap='cool') #カラー等高線図
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontsize=24)
plt.show()
결과 (4) : pcolormesh와 contour의 혼합
[부록]
컬러맵 지정의 cmap로 패턴을 지정한다. 패턴은 수십 종류 준비되어 있다. 여기에 샘플이 있습니다.
'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern',
'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', 'hsv',
'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar'
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 2차원(컬러) 등고선 등의 묘화, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sci_Haru/items/5b4c34d5330a545001cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
import matplotlib.pyplot as plt
z=np.zeros([100,100])
for i in range(100):
for j in range(100):
z[i,j] = i+j
plt.imshow(z)
plt.colorbar () # カラーバーの表示
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
예 (3) contour를 사용한 등고선도
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, Vmax=1,colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
결과(3): contour 다이어그램
예 (4) pcolormesh와 contour의 믹스
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, vmin=-1,vmax=1, colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.pcolormesh(X,Y,Z, cmap='cool') #カラー等高線図
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontsize=24)
plt.show()
결과 (4) : pcolormesh와 contour의 혼합
[부록]
컬러맵 지정의 cmap로 패턴을 지정한다. 패턴은 수십 종류 준비되어 있다. 여기에 샘플이 있습니다.
'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern',
'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', 'hsv',
'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar'
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 2차원(컬러) 등고선 등의 묘화, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sci_Haru/items/5b4c34d5330a545001cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, Vmax=1,colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontname="Arial", fontsize=24) #カラーバーのラベル
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.show()
예 (4) pcolormesh와 contour의 믹스
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, vmin=-1,vmax=1, colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.pcolormesh(X,Y,Z, cmap='cool') #カラー等高線図
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontsize=24)
plt.show()
결과 (4) : pcolormesh와 contour의 혼합
[부록]
컬러맵 지정의 cmap로 패턴을 지정한다. 패턴은 수십 종류 준비되어 있다. 여기에 샘플이 있습니다.
'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern',
'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', 'hsv',
'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar'
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 2차원(컬러) 등고선 등의 묘화, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sci_Haru/items/5b4c34d5330a545001cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.05) #x軸の描画範囲の生成。0から10まで0.05刻み。
y = np.arange(0, 10, 0.05) #y軸の描画範囲の生成。0から10まで0.05刻み。
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y) # 表示する計算式の指定。等高線はZに対して作られる。
# 等高線図の生成。
cont=plt.contour(X,Y,Z, 5, vmin=-1,vmax=1, colors=['black'])
cont.clabel(fmt='%1.1f', fontsize=14)
plt.xlabel('X', fontsize=24)
plt.ylabel('Y', fontsize=24)
plt.pcolormesh(X,Y,Z, cmap='cool') #カラー等高線図
pp=plt.colorbar (orientation="vertical") # カラーバーの表示
pp.set_label("Label", fontsize=24)
plt.show()
[부록]
컬러맵 지정의 cmap로 패턴을 지정한다. 패턴은 수십 종류 준비되어 있다. 여기에 샘플이 있습니다.
'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern',
'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', 'hsv',
'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar'
Reference
이 문제에 관하여([Python에 의한 과학·기술 계산] 2차원(컬러) 등고선 등의 묘화, 가시화, matplotlib), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sci_Haru/items/5b4c34d5330a545001cf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)