본문 바로가기
Python/Matplotlib

축(axes,axis)의 포맷팅(눈금(틱,tick), 축제목(레이블,label)) - matplotlib(9)

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

파이썬 버전 3.7 기준

matplotlib 버전 3.0.3 기준



  축(axes,axis)의 포맷팅(틱(tick), 축제목(레이블,label)) 


본 포스팅에서는 플롯에서 축의 틱과, 축 제목을 편집하는 방법에 대해 다룬다.

관련된 함수는 xticks(), yticks(), ticklabel_format(), minorticks_on(), minorticks_off(), xlabel(), ylabel()이 있다.

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


import matplotlib.pyplot as plt


  축의 틱(tick) 편집


pyplot과 Axes모듈에서 제공하는 함수를 이용하여 축의 틱과 축의 틱 레이블을 편집할 수 있다.


  xticks(ticks=None, labels=None, **kwargs)

  yticks(ticks=None, labels=None, **kwargs)

이 함수들은 pyplot 모듈에 포함되어 있다.

이 함수들은 x, y축의 틱을 편집할 수 있게 해주는 함수들이다.

각 입력변수에 대한 설명은 아래와 같다.


 입력인자

 입력자료형

 설명

 ticks

 array_like

 틱이 위치하는 위치의 리스트이다. 

 각 축의 틱을 사용하지 않게하기 위해서 빈 리스트을 입력하는 것도 가능하다. 

 labels

 array_like

 ticks에서 설정한 위치에서 표시할 레이블을 설정한다.

 문자열이나 다른 숫자로도 변경이 가능하다.

 **kwargs

 -

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


사용 형식)

xticks(array_like); yticks(array_like)

xticks(array_like1, array_like2); yticks(array_like1, array_like2)


여기서 array_like1은 실제 들어가는 틱이고, array_like2는 그래프에 틱자리에 표시될 레이블이다.


사용 예제)

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

Out[5]: 

([<matplotlib.axis.XTick at 0xebba8d0>,

  <matplotlib.axis.XTick at 0xebba4b0>,

  <matplotlib.axis.XTick at 0xebba310>],

 <a list of 3 Text xticklabel objects>)


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

Out[6]: 

([<matplotlib.axis.YTick at 0x12b55eb0>,

  <matplotlib.axis.YTick at 0x12b55a90>,

  <matplotlib.axis.YTick at 0x12b4bdb0>],

 <a list of 3 Text yticklabel objects>)


In[7]: plt.xticks([1,2,3], ['11','12','13'])

Out[7]: 

([<matplotlib.axis.XTick at 0x12b556d0>,

  <matplotlib.axis.XTick at 0x12b552d0>,

  <matplotlib.axis.XTick at 0x12b68bf0>],

 <a list of 3 Text xticklabel objects>)


In[8]: plt.yticks([1,2,3], ['11','12','13'])

Out[8]: 

([<matplotlib.axis.YTick at 0x12b55eb0>,

  <matplotlib.axis.YTick at 0x12b55a90>,

  <matplotlib.axis.YTick at 0x12b4bdb0>],

 <a list of 3 Text yticklabel objects>)



  ticklabel_format(*, axis='both', style='', scilimits=None, useOffset=None, useLocale=None, useMathText=None)

이 함수들은 pyplot 모듈에 포함되어 있다.

이 함수들은 x, y축의 틱의 포멧을 편집할 수 있게하며, 기본값으로 사용되는 ScalarFormatter를 수정한다.

각 입력인자로 편집할 수 있는 것은 다음과 같다.


 입력인자

 입력자료형

 설명

 axis

 str

 포멧을 설정할 축을 선택한다.

 'x', 'y', 'both'문자열을 입력받아 축을 결정한다.

 style

 str

 일반적인 숫자 형식과 과학적 표기법 중 무엇을 사용할지 선택한다.

 'sci' (or 'scientific'),  'plain'을 입력함으로써 설정을 변경할 수 있다.

 scilimits

 tuple(int)

 과학적 표기법을 사용할 경우(m, n)를 입력하여 10^m에서 10^n범위 밖으로 나갈경우 과학적 표기법을 사용한다.

 m과 n은 정수를 입력받는다

 (0,0)을 입력할 경우 모든 숫자가 포함된다.

 (m,m)을 입력할 경우(m이 0이 아닌 경우에 한함) 오더를 10^m에 고정시킨다. 

 useOffset

 bool, offset

 True일 경우 오프셋이 필요하다면 계산한다.

 False일 경우 오프셋을 사용하지 않는다.

 숫자일 경우 명시된 숫자를 오프셋으로 사용한다.

 useLocale

 bool 

 True일 경우 숫자를 현재 위치에 따라 포맷팅한다. 이것은 소수구별기호같은 문자에 영향을 미친다.

 False일 경우 C-스타일 포멧팅을 사용한다. 

 기본값은 axes.formatter.use_locale rcparam에 따라간다.

 useMathText

 bool

 True일 경우 mathtext로 과학적 표기법과 오프셋을 랜더링한다.


사용 예제)

In[67]: plt.ticklabel_format(axis='x',style='sci',scilimits=(0,1), useOffset=2, useLocale=True, useMathText=True)

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

Out[68]: [<matplotlib.lines.Line2D at 0x14d7d9b0>]



  minorticks_off()

  minorticks_on()

이 함수들은 pyplot 모듈에 포함되어 있다.

이 함수들은 minor tick을 표시할지 안할지 결정해주는 함수이다.

minorticks_on()함수는 minor tick을 표시하도록 하며, minorticks_off()는 minor tick을 표시 안하도록 한다.


사용 형식)

minorticks_off()

minorticks_on()


사용 예제)

# minorticks 표시

In[9]: plt.minorticks_on()

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

Out[10]: [<matplotlib.lines.Line2D at 0x1630cb30>]


# minorticks 표시하지 않음

In[11]: plt.minorticks_off()

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

Out[12]: [<matplotlib.lines.Line2D at 0x47870d0>]



  축의 레이블(label) 편집


pyplot에서 제공하는 함수를 이용하여 축의 레이블 혹은 축 제목을 설정할 수 있다.


  xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)

  ylabel(ylabel, fontdict=None, labelpad=None, **kwargs)

이 함수들은 pyplot 모듈에 포함되어 있다.

이 함수들은 x, y축의 렝비ㅡㄹ을 설정하는 기능을 한다.

각 입력변수에 대한 설명은 아래와 같다.


 입력인자

 입력자료형

 설명

 xlabel

 ylabel

 str

 각 축의 레이블의 이름을 설정하기 위한 문자열이 입력된다.

 labelpad

 int, float

 각 축과 레이블사이의 간격이 입력된다.

 **kwargs

 -

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


사용 형식)

xlabel('x label'); ylabel('y label')

xlabel(labelpad=5); ylabel(labelpad=10)


사용 예제)

In[13]: plt.xlabel('x-axis', labelpad=10)

Out[13]: Text(0.5,22.0233,'x-axis')

In[14]: plt.ylabel('y-axis')

Out[14]: Text(42.5972,0.5,'y-axis')



 

 

 

 

 참고자료

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

 

 

 

 


반응형

댓글