본문 바로가기
Python/Matplotlib

축(axes,axis)의 포맷팅(범위, 스케일) - matplotlib(8)

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

파이썬 버전 3.7 기준

matplotlib 버전 3.0.3 기준


  축(axes,axis)의 포맷팅(범위, 스케일)


본 포스팅에서는 플롯에서 축 범위와 스케일을 편집하는  방법에 대해 다룬다.

관련된 함수는 xlim(), ylim(), axis(), xscale(), yscale()이 있다.

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


import matplotlib.pyplot as plt


  축의 범위 설정


축의 범위는 크게 2가지 종류의 함수를 이용해서 설정할 수 있다.


  xlim(*args, **kwargs)

  ylim(*args, **kwargs)

이 함수들은 각 축의 범위를 설정하는 함수이다. 

함수명에서 예측 가능하듯이, xlim()은 x축의 범위를 ylim()은 y축의 범위를 설정한다.


함수 입력 변수)

xlim(left, right)

ylim(bottom, top)


여기서 x축에서 left는 왼쪽 범위, right는 오른쪽 범위를 설정하며, 

y축에서 bottom는 아래쪽 범위, top는 위쪽 범위를 설정한다.

각 변수들은 튜플로 하나로 묶어서 입력이 가능하다. 

아래는 xlim()의 입력 방식의  예를 보여주는 예제이며, ylim()역시 동일한 방법으로 입력이 가능하므로 xlim()으로만 예제를 구성하였다.


사용 예)

In[4]: plt.xlim(0.5,2.5)       # *args 입력 방식

Out[4]: (0.5, 2.5)

In[5]: plt.xlim((0.5,2.0))     # 튜플을 통한 입력 방식

Out[5]: (0.5, 2.0)

In[6]: plt.xlim(left=1.5)     # 키워드 인자를 통한 입력 방식

Out[6]: (1.5, 2.0)

In[7]: plt.xlim(right=2.5)    # 키워드 인자를 통한 입력 방식

Out[7]: (1.5, 2.5)



  axis(*v, **kwargs)

axis()함수는 x,y축의 범위를 설정할 수 있게 하는 것과 동시에 여러 옵션을 설정할 수 있는 함수이다.

*v자리에는 리스트나 튜플같이 순서가 있는 시퀀스형 자료형이 입력된다.


함수 입력 변수)

axis([xmin, xmax, ymin, ymax])  # x,y 축의 범위 설정

axis(option)                          # 축의 옵션(속성)을 설정

axis(emit)                             # 축의 범위 변경의 인지여부를 설정


입력방식은 축의 범위를 설정할 경우에는 리스트나 튜플로 입력하여야 한다.

emit은 축의 번위를 변화시킬 시 이를 인지하여 그래프에 반영할지 여부를 결정해주는 변수로 기본값은 True이다.

option은 키워드 인자로 입력하여야 하며 문자열(string,str)을 입력으로 받고, 다음표와 같은 옵션들이 입력 가능하다.


 값

설명 

 'on'

 축과 라벨을 켠다.

 'off'

 축과 라벨을 끈다.

 'equal'

 각 축의 범위와 축의 스케일을 동일하게 설정한다.

 'scaled'

 플롯 박스의 차원과 동일하게 축의 스케일을 설정한다.

 'tight'

 모든 데이터를 볼 수 있을 정도로 축의 범위를 충분히 크게 설정한다.

 'auto'

 축의 스케일을 자동으로 설정한다.

 'normal'

 'auto'와 동일하다.

 'image'

 데이터 범위에 대해 축의 범위를 사용한 'scaled'이다.

 'square'

 각축의 범위 즉 xmax-xmin=ymax-ymin 되도록 설정한다.


다음 예제는 axis() 함수의 사용 예를 보여준다.


사용 예)

In[13]: plt.axis(option='auto')

Out[13]: (0.0, 1.0, 0.0, 1.0)

In[14]: plt.axis((0,2,0,4))

Out[14]: (0, 2, 0, 4)



  축의 스케일 설정


pyplot에서 제공하는 함수를 이용하면 각 축의 스케일을 조정할 수 있다.


  xscale(value, **kwargs)

  yscale(value**kwargs)

이 함수들은 각 축의 스케일을 설정하는 함수이다. 

이 함수들을 통해 축을 선형스케일(Linear), 로그스케일(Log), 시메트릭로그스케일(Symmetrical log), 로짓스케일(Logit) 등으로 설정할 수 있다. 

value위치에 입력되는 변수는 문자열형(string, str)이며 아래 표에 설명되어 있는 문자열을 입력받아 스케일 변경을 수행한다.


 값

설명 

 'linear'

 축의 스케일을 선형스케일로 만든다.

 'log'

 축의 스케일을 로그스케일로 만든다.

 'symlog'

 축의 스케일을 시메트릭로그스케일로 만든다.

 로그스케일에서는 불가능한 음수 영역을 표현해 주는 것이 가능해진다.

 'logit'

 축의 스케일을 로짓스케일로 만든다.

 0과 1사이에 포함되는 데이터만으로 구성된다.


사용 예)

In[15]: plt.yscale('log')

In[16]: plt.yscale('linear')



 

 

 

 

 참고자료

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

 

 

 

 


반응형

댓글