메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
pcolormesh 그리드 및 음영 #
axes.Axes.pcolormesh
그리드 배치 방법 과 pcolor
그리드 포인트 사이의 음영에 대한 몇 가지 옵션이 있습니다.
일반적으로 Z 의 모양이 (M, N)인 경우 키워드 인수 의 인수에 따라 그리드 X 및 Y 를 모양 (M+1, N+1) 또는 (M, N) 으로 지정할 수 있습니다. shading
아래에서 벡터 x 를 길이 N 또는 N+1로 지정하고 y 를 길이 M 또는 M+1로 지정하고
내부적으로 입력 벡터에서 pcolormesh
메쉬 행렬 X 및 Y 를 만듭니다.
import matplotlib.pyplot as plt
import numpy as np
플랫 셰이딩 #
최소한의 가정을 가진 그리드 사양은 shading='flat'
그리드가 각 차원의 데이터보다 하나 더 큰 경우, 즉 모양이
(M+1, N+1) 입니다. 이 경우 X 와 Y 는 Z 의 값으로 색상이 지정된 사변형의 모서리를 지정합니다 . 여기서 우리
는 (4, 6)인 X 와 Y 로 (3, 5) 사변형 의 모서리를 지정합니다 .
nrows = 3
ncols = 5
Z = np.arange(nrows * ncols).reshape(nrows, ncols)
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='flat', vmin=Z.min(), vmax=Z.max())
def _annotate(ax, x, y, title):
# this all gets repeated below:
X, Y = np.meshgrid(x, y)
ax.plot(X.flat, Y.flat, 'o', color='m')
ax.set_xlim(-0.7, 5.2)
ax.set_ylim(-0.7, 3.2)
ax.set_title(title)
_annotate(ax, x, y, "shading='flat'")
플랫 셰이딩, 같은 모양의 그리드 #
그러나 종종 X 와 Y 가 Z 의 모양과 일치하는 데이터가 제공됩니다 . 이것은 다른 shading
유형에 대해 의미가 있지만 더 이상 허용되지 않습니다 shading='flat'
(Matplotlib v3.3부터 MatplotlibDeprecationWarning 발생). 역사적으로 Matplotlib 는 이 경우 Matlab의 동작과 일치시키기 위해 Z 의 마지막 행과 열을 자동으로 삭제했습니다 . 이 동작이 여전히 필요한 경우 마지막 행과 열을 수동으로 삭제하면 됩니다.
가장 가까운 음영, 같은 모양 그리드 #
일반적으로 데이터의 행과 열을 삭제하는 것은 사용자가 X , Y 및 Z 를 모두 같은 모양으로 만들 때 의미하는 바가 아닙니다. 이 경우 Matplotlib는 shading='nearest'
색상이 지정된 사변형을 격자점에 배치하고 중앙에 배치합니다.
올바른 모양이 아닌 그리드가 전달 shading='nearest'
되면 오류가 발생합니다.
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='nearest', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='nearest'")
자동 음영 #
사용자는 코드에서 사용할 것을 자동으로 선택하기를 원할 수 있습니다. 이 경우 X , Y 및 Zshading='auto'
의 모양을 기반으로 '플랫' 또는 '가장 가까운' 셰이딩을 사용할지 여부를 결정합니다 .
fig, axs = plt.subplots(2, 1, constrained_layout=True)
ax = axs[0]
x = np.arange(ncols)
y = np.arange(nrows)
ax.pcolormesh(x, y, Z, shading='auto', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='auto'; X, Y, Z: same shape (nearest)")
ax = axs[1]
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)
ax.pcolormesh(x, y, Z, shading='auto', vmin=Z.min(), vmax=Z.max())
_annotate(ax, x, y, "shading='auto'; X, Y one larger than Z (flat)")
고로 셰이딩 #
사변형의 색상이 그리드 점 사이에서 선형으로 보간되는 Gouraud 음영 도 지정할 수 있습니다. X , Y , Z 의 모양은 동일해야 합니다.
참조
다음 함수, 메서드, 클래스 및 모듈의 사용이 이 예제에 표시됩니다.
스크립트의 총 실행 시간: (0분 2.324초)