Matplotlib 에서 pcolor
pseudocolor (=false color)로 그린 plot 으로
- 2차원의
x
,y
의 좌표가 독립변수가 되고, - 해당 독립변수에 의해 결정된 함수값(=종속변수)
z
에 - pseudocolor 를 할당하여 표시하는 plot 임.
bivariate function
(or two-variable single valued function) 을
graph로 표시하는데 사용됨.
imshow
와 매우 유사한데,
matplotlib에서 imshow
는
2차원의 독립변수에 의해 결정된 함수값을
행과 열로 구성된 matrix z
로 구성하여 이것만을 입력받아 그리는 방식이기 때문에,
x
,y
,z
를 모두 matrix로 입력받는 pcolor
와는 차이가 있음.
parameters
cmap
: 종속변수에 pseudocolor를 할당하는 규칙.matplotlib.cm
모듈 predfined colormap을 사용함.vmax
: 표시되는 종속변수z
의 최대값.vmin
: 표시되는 종속변수z
의 최소값.norm
:vmax
와vmin
을 통해 다음으로 얻어진 객체n
를 할당하여 같은 효과를 냄.n=matplotlib.colors.Normalize(vmin, vmax)
Colorbar
pcolor
를 그릴 때, 종속변수 z
의 값에 할당된 color 를 확인할 수 있도록 그려지는 bar를 의미함.
plt.colorbar
함수로 그려짐.
관련 parameters 는 다음과 같음.
plot
:- 1st positional argument가 할당됨.
- colorbar 와 연관된 plot을 가르킴.
- colorbar는 다양한 plot에 대해 그려질 수 있음.
ax
:- colorbar가 연관된 plot이 그려진
Axes
객체로 - 해당 객체의 옆에 colorbar가 위치하도록 해당 객체의 axis 들이 조정됨.
- colorbar가 연관된 plot이 그려진
cax
:- colorbar가 그려질 대상
Axes
객체로 - colorbar의 위치와 세밀하게 조절할 때 사용 됨.
- colorbar가 그려질 대상
반환되는 객체는 colorbar의 axis 를 가지고 있음.
- 해당 axis 속성을 통해
set_ticks
,set_ticklabels
,set_label
등 methods을 지원
Example
imshow와 pcolor 의 사용법에 대한 예제코드
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
x, y = np.meshgrid(np.linspace(-10,10,200), np.linspace(-10,10,200))
z = np.cos(x) * np.cos(y) * np.exp(-(x/5)**2-(y/5)**2)
fig, axs = plt.subplots(1, 2, figsize=(12, 5))
n = mpl.colors.Normalize(-np.max(np.abs(z)), np.max(np.abs(z)))
pc = axs[0].pcolor(x,y,z,norm=n, cmap=mpl.cm.bwr)
plt.colorbar(pc, ax=axs[0])
im = axs[1].imshow(z, extent=[-10,10,-10,10], norm=n, cmap=mpl.cm.bwr)
plt.colorbar(im, ax=axs[1], shrink=0.8)
결과는 다음과 같음.
더 읽어보면 좋은 자료.
https://dsaint31.tistory.com/389
https://ds31x.blogspot.com/2023/09/dip-digital-image-processing.html
728x90
'Python > matplotlib' 카테고리의 다른 글
[matplotlib] inset: inset_axes and indicate_inset_zoom (0) | 2024.01.23 |
---|---|
[matplotlib] Visualization: Graph, Chart, Diagram, Figure (1) | 2024.01.22 |
[matplotlib] Layout Managers: GridSpec and subplot2grid (1) | 2024.01.22 |
[matplotlib] 3D Plot (0) | 2024.01.21 |
[matplotlib] x축과 y축을 그리기: spines (0) | 2023.08.08 |