[matplotlib]pyplot.text(글자 쓰기)

반응형
반응형

이번 포스팅에서는 matplotlib 로 그린 그래프 안에 글씨를 넣는 방법을 설명할까 합니다.

아래와 같은 그래프를 그렸습니다. 보시다시피 주기함수입니다. 

저는 이 주기함수의 최대값과 최소값에다 각각 max,min 이라 표시를 하고 싶습니다.

 

 

 

이럴 때 text 메쏘드를 씁니다. 

파라미터를 보면 x, y, s, fontdict , withdash , 기타등등으로 되어 있습니다.

 

 

 

 

그래프는 좌표평면에 그리게 됩니다.

좌표평면에서 (x,y)로 좌표표시를 하는데 거기에서의 x, y 가 text 파라미터의 x,y 가 됩니다. 

s 는 내가 넣을 문구를 넣으시면 되고 

글자 크기와 색깔, 글자위치만 잘 지정해도 나쁘지 않으니 그 부분에 대해서만 설명하겠습니다. 

 

 

max, min 표시하기

max와 min 을 그래프에 표시하기 위해서는 좌표를 알아야 합니다. 

좌표를 알기 위해 데이터에서 max랑 매칭되는 인덱스를 찾아보겠습니다.

 

season

 

 

 

season이라는 데이터로 위의 그림을 그렸습니다. 

이 데이터를 보면 series로 이루어진 걸을 알 수 있습니다. 

자신의 데이터의 타입을 잘 모르면 type(데이터)를 해서 확인해 볼 수도 있습니다.

 

type(season)

 

 

여기서 min,max를 찾고 인덱스도 찾아보겠습니다. min,max는 간단합니다.

max(season), min(season)을 입력하면 나옵니다.

 

print(max(season),min(season))

 

 

 

이제 인덱스를 찾아봅시다. max만 보여드리겠습니다. 

series니깐 다음과 같이 구할 수 있습니다.

 

index_max = season[season==max(season)].index
index_min = season[season==min(season)].index
print(index_max)

 

 

 

주기함수라서 여러개의 인덱스가 나왔습니다.

인덱스의 맨 처음것을 가지고 min, max의 좌표를 구성해서 그래프에 표시합니다. 

 

plt.plot(season.index,season.values)
plt.text(season.index[0],max(season),'max')
plt.text(index_min[0],min(season),'min')

 

 

 

max와 min 이 그래프에 써졌습니다!

 

fontsize, color, va, ha

이제 글자위치와 색깔 크기 등을 바꿔봅시다.

비교를 위해 max만 바꿔보겠습니다.

그에 앞서 color와 fontsize는 쉽게 이해가 될테니

va 와 ha에 대해 설명하겠습니다.

va 는 verticalalignment 의 약자로 y축에서의 위치를 말합니다.

[ 'center' | 'top' | 'bottom' | 'baseline' ] 으로 되어있고 이중에 하나를 선택해서 씁니다. 

ha 는 horizontalalignment 의 약자로 x축에서의 위치를 말합니다.

[ 'center' | 'right' | 'left' ] 으로 되어있습니다.

 

 

이제 max를 조금 변경해보겠습니다. 

 

plt.plot(season.index,season.values)
plt.text(season.index[0],max(season),'max',fontsize=15,color='g',va='baseline',ha='left')
plt.text(index_min[0],min(season),'min')

 

 

 

 

글자크기를 좀 키우고 va는 y값 선상에 위치하고 ha는 왼쪽으로 놓았습니다.

이런식으로 하면 되겠습니다.

 

 

 

series에 대해 더 알고 싶다면 이전 포스팅을 참고해주세요

[Python/Pandas] - Pandas Series 특징

데이터목장님의
글이 좋았다면 응원을 보내주세요!

Designed by JB FACTORY