본문 바로가기
Python/Python FAQ

Python 주어진 플롯에 수직선을 그리는 방법, How to draw vertical lines on a given plot

by 베타코드 2023. 11. 2.
반응형

질문


시간 표현으로 된 신호의 플롯이 주어졌을 때, 해당 시간 인덱스를 표시하는 선을 그릴 수 있는 방법이 있을까요?

구체적으로, 0부터 2.6(초)까지의 시간 인덱스를 가진 신호 플롯이 주어졌을 때, [0.22058956, 0.33088437, 2.20589566] 리스트에 대한 해당 시간 인덱스를 나타내는 수직 빨간색 선을 그리고 싶습니다. 어떻게 할 수 있을까요?


답변


플롯 창 전체를 덮을 세로 선을 추가하는 표준 방법은 plt.axvline을 사용하는 것입니다.

import matplotlib.pyplot as plt

plt.axvline(x=0.22058956)
plt.axvline(x=0.33088437)
plt.axvline(x=2.20589566)

또는

xcoords = [0.22058956, 0.33088437, 2.20589566]
for xc in xcoords:
    plt.axvline(x=xc)

다른 플롯 명령에서 사용 가능한 많은 키워드를 사용할 수 있습니다 (예: color, linestyle, linewidth...). yminymax와 같은 키워드 인수를 축 좌표로 전달할 수 있습니다 (예: ymin=0.25, ymax=0.75는 플롯의 중간 절반을 덮을 것입니다). 수평선 (axhline)과 사각형 (axvspan)에 대응하는 함수도 있습니다.

반응형

댓글