[matplotlib]pyplot.text(글자 쓰기)
- Python/그래프 그리기
- 2021. 3. 24.
이번 포스팅에서는 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 > 그래프 그리기' 카테고리의 다른 글
[matplotlib]여러개로 나누어서 그래프 출력(subplot) (0) | 2021.05.14 |
---|---|
[matplotlib]n차원 데이터 그리기 (0) | 2021.05.13 |
matplotlib 그래프 영역 채우기 (0) | 2021.04.15 |
[matplotlib]plt 라벨(label) 위치설정 (0) | 2021.03.28 |
[Python] matplotlib 에서 한글 출력 (4) | 2021.03.02 |