본문 바로가기
Python/Matplotlib

pyplot 그리드(grid)와 제목(title) - matplotlib(10)

by 콩돌 2019. 4. 17.
반응형

파이썬 버전 3.7 기준

matplotlib 버전 3.0.3 기준



  pyplot의 그리드(Grid)와 제목(Title)의 설정



본 포스팅에서는 플롯에서 그리드와, 그래프 제목을 편집하는 방법에 대해 다룬다.

관련된 함수는 grid(), title(), suptitle()이 있다.

본 포스팅에서 다루는 함수들은 pyplot 모듈에 포함되어있다. 따라서 사용하기 위해서 아래와 같이 pyplot 모듈을 임폴트 해야한다.


import matplotlib.pyplot as plt



  그리드(grid)의 작성


pyplot에서는 그래프에 그리드를 그릴 수 있도록 관련 함수를 제공한다. 


  gird(b=None, which='major', axis='both', **kwargs)

이 함수는 그래프 내에 그리드를 그려주는 함수이다. 

이 함수의 각 의미에 대한 설명은 다음과 같다. 


 입력인자

 입력자료형

 설명

 b

 bool, None

 gird를 작성할지 안할지 결정해주는 입력인자이다. 

 만약 **kwargs가 입력되었다면 자동으로 b인자를 True라고 여겨 그리드를 작성한다.

 which

 str

 메이저 틱, 마이너 틱에 혹은 두 틱 모두 그리드 라인을 그리는 것을 결정하는 인자이다.

 'major'는 메이저 틱에 대한 그리드를 그리도록 설정한다.

 'minor'는 마이너 틱에 대한 그리드를 그리도록 설정한다.

 'both'는 메이저 마이너 두 틱 모두 그리드를 그리도록 설정한다.

 axis

 str

 그리드를 그릴 축을 설정하는 입력인자이다.

 'both'는 두 축 모두에 그리드를 그리도록 설정한다.

 'x'는 x축에만 그리드를 그리도록 설정한다.

 'y'는 y축에만 그리드를 그리도록 설정한다.

 **kwargs

 -

 2D 선의 속성을 설정한다. 

 앞선 포스팅에서 라인그래프에서 라인 속성을 편집하기 위해 입력하는 인자와 거의 동일한 인자를 입력받는다. 

 따라서 자세한 사항은 matplotlib의 공식홈페이지(링크)나 앞서 제작한 포스팅(링크)에서 **kwargs파트를 참고하면 된다.


사용 형식)

grid()

grid(True)

grid(b=True, which='both', axis='both')


사용 예)

In[9]: plt.plot([1,2,3],[10,100,1000])

Out[9]: [<matplotlib.lines.Line2D at 0x4a502b0>]

In[10]: plt.grid(b=True, which='both', axis='both')  # grid on

In[11]: plt.grid(False)                                        # grid off



  그래프의 제목(title)의 작성

 

pyplot은 그래프의 제목을 설정하기 위한 함수들을 제공한다.


  title(label, fontdict=None, loc='center', pad=None, **kwargs)

Axes의 제목을 설정한다. 

  ▷ Figure 안의 하나의 그래프에 제목을 설정한다고 이해하면 편하다. 

다음 표는 입력인자에 대해 설명한다.

 입력인자

 입력자료형

 설명

 label

 str

 제목을 설정하기 위한 텍스트를 입력받는다. 

 fontdict

 dict

 틱라벨의 모양을 편집하는 딕셔너리를 입력받는다.

 기본 딕셔너리 값은 다음과 같다.

  {'fontsize': rcParams['axes.titlesize'],

   'fontweight': rcParams['axes.titleweight'],

   'verticalalignment': 'baseline',

   'horizontalalignment': loc}

 loc

 str

 제목의 위치를 설정한다. 

 'center', 'left', 'right'라는 문자열로 위치 조정이 가능하다.

 pad

 float

 axes(제목을 입력할 그래프)로부터의 거리를 입력받는다. 

 기본 값은 None인데 이 경우 rcParams['axes.titlepad']를 사용한다.

 **kwargs

 -

 라벨의 모양을 편집하기 위해 텍스트 속성 역시 사용 가능하다.


사용 형식)

title('title')

title('title', fontdict=dict, loc='center', pad=10.)

title(label='title', fontdict=dict, loc='center', pad=10.)


사용 예)

In[3]: plt.plot([1,2,3],[1,2,3])

Out[3]: [<matplotlib.lines.Line2D at 0x111bff50>]

In[4]: plt.title('axes title', loc='right')

Out[4]: Text(1,1,'axes title')



  suptitle(t, **kwargs)

Figure의 제목을 설정한다. 

  ▷ Figure 자체에 제목을 지어준다.

  ▷ Figure 안의 모든 그래프를 대표할 수 있는 제목을 지어주는 것이 좋다.

다음 표는 입력인자에 대해 설명한다.


 입력인자

 입력자료형

 설명

 t

 str

 Figure의 제목 텍스트를 입력한다.

 x

 float

 제목의 x 좌표를 입력한다. 기본값은 0.5이다.

 y

 float

 제목의 y 좌표를 입력한다. 기본값은 0.98이다.

 horizontalalignment, ha

 str

 가로방향으로 위치를 입력한다. 

 'center', 'left', 'right' 문자열을 입력함으로써 위치를 조절할 수 있다.

 기본값은 'center'

 verticalalignment, va

 str

 세로방향으로 위치를 입력한다. 

 'top', 'center', 'bottom', 'baseline', 'center_baseline' 문자열을 입력함으로써 위치를 조절할 수 있다.

 기본값은 top이다.

 fontsize, size

 float, int

 제목 텍스트의 폰트 사이즈를 결정한다.

 기본 값으로 rcParams["figure.titlesize"]로 설정된 크기를 가진다.

 fontweight, weight

 float, int

 제목 텍스트의 글꼴 두께를 결정한다. 

 기본 값으로 rcParams["figure.titleweight"]로 설정된 크기를 가진다.

 fontproperties

 None, dict

 만약 이 변수가 입력된다면, 글꼴 크기 및 무게의 기본값은 FontProperties 기본값에서 가져옵니다. 다시 말하면 디폴트 값을 다시 설정하는 것이다.

 즉, 디폴트로 불러오는 rcParams["figure.titlesize"]와 rcParams["figure.titleweight"]는 무시된다.

 **kwargs

 -

 마찬가지로 라벨의 모양을 편집하기 위해 텍스트 속성 역시 사용 가능하다.


사용 형식)

suptitle('title')

suptitle('title', x=10, y=10, ha='center', va='center', size=10, weight=1, fontproperties=dict)

suptitle(t='title', x=10, y=10, ha='center', va='center', size=10, weight=1, fontproperties=dict)


사용 예)

In[5]: plt.plot([1,2,3],[1,2,3])

Out[5]: [<matplotlib.lines.Line2D at 0x15845a90>]

In[6]: plt.suptitle('Figure title', ha='left', va='bottom', fontsize=10)

Out[6]: Text(0.5,0.98,'Figure title')



 

 

 

 

 참고자료

  https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html?highlight=matplotlib%20pyplot#module-matplotlib.pyplot

 





반응형

댓글