Step Plot 은 데이터를 계단식으로 표현하는 Matplotlib 그래프입니다. 이는 데이터가 연속적이지 않고, 이산적(discrete)이거나 특정 구간에서 값이 유지되는 경우에 유용합니다. 예를 들어, 디지털 신호 처리, 이산 데이터 시각화, 또는 히스토그램과 유사한 형태의 그래프를 그릴 때 사용됩니다.
Matplotlib에서 Step Plot을 그리는 방법은 plt.step()
함수를 사용하는 것입니다.
기본 사용법
plt.step()
함수는 x
와 y
데이터를 입력받아 계단식 그래프를 그립니다.
plt.step(x, y, where='pre', label=None, color=None, linestyle='-', linewidth=2, marker=None)
x
: x축 데이터.y
: y축 데이터.where
: 계단의 형태를 지정합니다. ('pre'
,'post'
,'mid'
).label
: 범례에 표시될 라벨.color
: 선 색상.linestyle
: 선 스타일 ('-'
,'--'
,':'
,'-.'
).linewidth
: 선 두께.marker
: 데이터 포인트에 마커를 표시할지 여부.
where
파라미터
where
파라미터는 계단의 형태를 결정합니다. 주요 옵션은 다음과 같습니다.
plt.step(x, y, where='pre', label='pre (default)')
plt.step(x, y, where='post', label='post')
plt.step(x, y, where='mid', label='mid')
'pre'
(기본값): 각x
값에서 이전 값까지 수평선을 그립니다.'post'
: 각x
값에서 다음 값까지 수평선을 그립니다.'mid'
: 각x
값의 중간에서 수평선을 그립니다.
Step plot Code
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [10, 20, 15, 25, 20, 15, 5, 20, 23, 30]
plt.step(x, y, where='mid')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Step Plot Example')
plt.show()

장점
- 이산 데이터 표현에 적합: 데이터가 연속적이지 않고, 특정 구간에서 값이 유지되는 경우에 적합합니다.
- 시각적 명확성: 계단식 형태로 데이터의 변화를 명확하게 보여줍니다.
- 유연성:
where
파라미터를 통해 계단의 형태를 유연하게 조절할 수 있습니다.
단점
- 연속 데이터에는 부적합: 연속적인 데이터를 표현할 때는 Step Plot이 적합하지 않을 수 있습니다.
- 복잡한 데이터에서는 혼란: 데이터 포인트가 많거나 복잡한 경우, 계단식 그래프가 오히려 가독성을 떨어뜨릴 수 있습니다.
Step Plot의 활용 사례
- 디지털 신호 처리: 디지털 신호의 변화를 표현할 때 유용합니다.
- 이산 데이터 시각화: 이산적인 데이터(예: 일별 판매량)를 표현할 때 사용됩니다.
- 히스토그램 대체: 히스토그램과 유사한 형태로 데이터를 표현할 수 있습니다.
Step Plot vs Line Plot
특징 | Step Plot | Line Plot |
---|---|---|
데이터 형태 | 이산적 데이터에 적합 | 연속적 데이터에 적합 |
시각적 표현 | 계단식 변화 | 부드러운 변화 |
사용 사례 | 디지털 신호, 이산 데이터 | 연속 데이터, 추세 분석 |
추가 예시: Step Plot과 Line Plot 비교
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 3, 2, 4, 3])
plt.plot(x, y, label='Line Plot', marker='o')
plt.step(x, y, where='pre', label='Step Plot', linestyle='--')
plt.title('Step Plot vs Line Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()
plt.grid(True)
plt.show()
정리
- Step Plot은 이산 데이터를 계단식으로 표현하는 데 유용합니다.
where
파라미터를 통해 계단의 형태를 조절할 수 있습니다.- 선 스타일, 색상, 마커 등을 사용하여 그래프를 꾸밀 수 있습니다.
- 연속 데이터보다는 이산 데이터에 더 적합합니다.
Step Plot을 적절히 활용하면 데이터의 변화를 명확하고 직관적으로 표현할 수 있습니다!