반응형

파이썬 Matplotlib을 이용한 데이터 시각화 프로그래밍11 - Spine과 임의의 수평선을 기준으로 상하 부분 색칠하기



Spine은 영어로 척추를 의미합니다. 척추란 동물이나 사람의 몸을 지탱하는 중요한 역할을 하죠. 플로팅에서 Spine이란 좌표의 테두리를 굵게 표시하는 것으로 생각하면 됩니다. 이번 포스팅에서는 Matplotlib으로 Spine을 표시하는 방법을 살펴보겠습니다.


그리고 또 살펴볼 것은 다음과 같습니다.

주가 그래프를 볼 때 어떤 가격을 기준으로 윗부분과 아랫부분의 영역을 다른 색상으로 칠하면 보기에 매우 직관적일 것입니다. 예를 들어 삼성전자 주가 그래프에서 125만원 아랫쪽은 파란색, 윗쪽은 빨간색으로 칠하게 되면 120만원보다 주가가 낮았을 때와 높았을 때를 구분하여 보기 쉬울 것입니다.



10편의 코드와 다른 부분만 살펴보겠습니다.


>>> ref_price = 1250000


삼성전자 주가 그래프에서 ref_price를 기준으로 위쪽과 아래쪽의 색상을 다르게 할 것입니다.



>>> ax.fill_between(date, closep, ref_price, where=(closep > ref_price), \

                     facecolor='r', alpha=0.5)

>>> ax.fill_between(date, closep, ref_price, where=(closep < ref_price), \

                     facecolor='b', alpha=0.5)


10편에서 다루었던 fill_between()에서 인자 where= 가 추가되었습니다. where= 다음에는 조건을 입력합니다. where=(closep > ref_price)는 closep의 값이 ref_price보다 클 경우에만 색으로 채우는데, 그 색은 'r'로써 빨간색이며, 투명도는 0.5로 합니다. 마찬가지로 아래의 fill_between()은 closep의 값이 ref_price 보다 작을 경우에만 파란색으로 칠하고 투명도는 0.5로 합니다.



>>> ax.spines['left'].set_color('c')

>>> ax.spines['left'].set_linewidth(5)

>>> ax.spines['right'].set_visible(False)

>>> ax.spines['top'].set_visible(False)


Spine을 설정합니다. 좌측 Spine은 색상은 cyan, 두께는 5로 지정하였고 오른쪽과 위쪽은 Spine을 보이지 않게 했습니다.

 

 

>>> ax.tick_params(axis='x', color='r')

>>> ax.tick_params(axis='y', color='#225588')

 

x축의 값을 빨간색으로 표시하고, y축의 값을 225588 값에 해당하는 색으로 나타냅니다.


 

이 코드의 실행 결과는 다음과 같습니다.



반응형

+ Recent posts