Python/Matplotlib

[Python] 파이썬 matplotlib 그래프 선 모양, 종류 지정하기 - 포맷 문자열, linestyle, capstyle

나비🦋 2024. 5. 7. 22:47
반응형

안녕하세요! 나비입니다 🦋

이번 포스팅에서는 파이썬 matplotlib을 이용하여 그린 그래프에서 선의 모양과 종류를 지정하는 방법에 대해 다뤄보려고 합니다. 크게 포맷문자열과 linestyle 파라미터를 사용하는 방법을 각각 설명드리고, 선의 끝부분은 뾰족하게/둥글게 만드는 파라미터에 대해서도 간단히 이야기해 보겠습니다.

먼저, 포맷 문자열을 이용해서 선 종류를 설정하는 예제 코드를 보여드리겠습니다. 여기서 설정할 수 있는 선의 종류는 총 4가지입니다.


포맷 문자열로 선 종류 지정하기

import matplotlib.pyplot as plt

plt.plot([1,2,3,4,5,6], [1,2,1,2,1,2], “-“, label = “solid”)
plt.plot([1,2,3,4,5,6], [2,3,2,3,2,3], “—-“, label = “dashed”)
plt.plot([1,2,3,4,5,6], [3,4,3,4,3,4], “:”, label = “dotted”)
plt.plot([1,2,3,4,5,6], [4,5,4,5,4,5], “-.”, label = “dash-dot”)

plt.axis([0,7,0,6])
plt.legend(loc=“upper right”, ncol=4)
plt.show()


matplotlib으로 보기 좋게 만들어 보았습니다. 위 이미지처럼, solid, dashed, dotted, dash-dot 이렇게 4가지 선 종류를 지정할 수 있습니다. 코드를 보면 아실 수 있듯이, plot 메소드에서 x, y 배열 뒤에 문자열로 해당하는 기호를 삽입해주면 됩니다.

코드에서 axis 함수, label 파라미터, legend 함수에 대해 궁금하신 분들은 제 블로그 같은 카테고리 포스팅을 참고하시면 좋을 것 같습니다.

다음으로는 linestyle 파라미터를 통해 선 종류를 지정하는 방법에 대해 소개할게요.



linstyle 파라미터로 선 종류 지정하기

import matplotlib.pyplot as plt

plt.plot([1,2,3,4,5,6], [1,2,1,2,1,2], linestyle = ‘solid’, label = ‘solid’)
plt.plot([1,2,3,4,5,6], [2,3,2,3,2,3], linestyle = ‘dashed’, label = ‘dashed’)
plt.plot([1,2,3,4,5,6], [3,4,3,4,3,4], linestyle = ‘dotted’, label = ‘dotted’)
plt.plot([1,2,3,4,5,6], [4,5,4,5,4,5], linestyle = ‘dashdot’, label = ‘dash-dot’)

plt.legend(loc=‘upper center’, ncol=4)
plt.axis([0,7,0,6])
plt.show()


linestyle 파라미터에 solid, dashed, dotted, dashdot을 입력하면 포맷문자열을 사용하는 것과 같은 결과를 얻을 수 있습니다. linestyle 파라미터는 plot 메소드에서 설정해주면 됩니다. 이외 axis, label, legend는 선의 종류와는 관계가 없으며, 보기 편하게 하기 위한 사소한 설정들입니다.



선 끝모양 지정하기 (뾰족하게, 둥글게)


선의 끝 모양을 뾰족하고 딱 떨어지게 설정할 수도 있고, 둥글게 마무리되도록 설정할 수 있습니다. 예제 코드와 결과 이미지를 참고해주세요!

import matplotlib.pyplot as plt

plt.plot([1,2,3,4,5,6], [1,2,1,2,1,2], linewidth = 5, linestyle = ‘solid’, solid_capstyle = ‘butt’)
plt.plot([1,2,3,4,5,6], [2,3,2,3,2,3], linewidth = 5, linstyle = ‘solid’, solid_capstyle = ‘round’)
plt.plot([1,2,3,4,5,6], [3,4,3,4,3,4], linewidth = 5, linestyle = ‘dashed’, dash_capstyle = ‘butt’)
plt.plot([1,2,3,4,5,6], [4,5,4,5,4,5], linewidth = 5, linestyle = ‘dashed’, dash_capstyle = ‘round’)

plt.axis([0,7,0,6])
plt.show()

dashed, solid에 따라 사용하는 파라미터가 조금 다릅니다. solid의 경우 solid_capstyle, dashed의 경우 dash_capstyle을 사용합니다. 파라미터 값으로는 butt, round가 있으며, 사진에서 보시듯이 선 끝처리가 다릅니다. butt는 뾰족한 끝, round는 둥근 끝을 의미합니다.


반응형