본문 바로가기
파이썬/시각화 matplot

축의 범위와 눈금 지정

by Merware 2023. 5. 15.

[ 학습목표 ]
그래프의 가독성을 높이기 위해 축의 범위와 눈금을 설정할 수 있다.

라이브러리 임포트 및 그래프 설정

라이브러리 임포트

  • matplotlib의 pyplot 모듈 사용
  • 관용적으로 plt라는 별칭 사용
import matplotlib.pyplot as plt
import matplotlib as mpl

# 그래프에 마이너스 기호 깨지는 문제 해결
mpl.rcParams['axes.unicode_minus'] = False

# 그래프에 한글 설정
mpl.rcParams['font.family'] = 'NanumGothic'

 

샘플 데이터

  • 월별 몸무게 변화
import pandas as pd
df = pd.DataFrame({'월':[1,2,3,4,5],'몸무게':[80,78,75,73,70]})
df

"""
	월	몸무게
0	1	80
1	2	78
2	3	75
3	4	73
4	5	70

 

그래프 그리기

x = df['월']
y = df['몸무게']
plt.plot(x,y,'bo-', mfc='r',mec='r')

# title
plt.title('월별 몸무게 변화', size=15, color='b', fontweight='bold')

# 축 레이블
plt.xlabel('월')
plt.ylabel('몸무게(kg)')

# 그리드
plt.grid(ls=':')
plt.show()

축의 범위 지정하기

  • plt.xlim(min,max)
  • plt.ylim(min,max)
x = df['월']
y = df['몸무게']
plt.plot(x,y,'bo-', mfc='r',mec='r')

# title
plt.title('월별 몸무게 변화', size=15, color='b', fontweight='bold')

# 축 레이블
plt.xlabel('월')
plt.ylabel('몸무게(kg)')

# 축의 범위
plt.xlim(1,12)
plt.ylim(0,100)

# 그리드
plt.grid(ls=':')
plt.show()

 

틱 설정

  • x축, y축 눈금을 틱(tick)이라고 한다.
  • 틱의 갯수, 레이블, 스타일을 변경할 수 있다.

틱 지정

  • plt.xticks(틱리스트)
  • plt.yticks(틱리스트)
# x축 : 0,1,2,3,4,5,6,7,8,9,10,11,12,13
# y축 : 0,10,20,30,40,50,60,70,80,90,100

x = df['월']
y = df['몸무게']
plt.plot(x,y,'bo-', mfc='r',mec='r')

# title
plt.title('월별 몸무게 변화', size=15, color='b', fontweight='bold')

# 축 레이블
plt.xlabel('월')
plt.ylabel('몸무게(kg)')

# 틱
plt.xticks(range(0,14,1))
plt.yticks(range(0,110,10))

# 그리드
plt.grid(ls=':')
plt.show()

 

틱 레이블 지정

  • plt.xticks(눈금리스트, label = 레이블리스트)
  • plt.yticks(눈금리스트, label = 레이블리스트)
  • 눈금의 개수와 동일한 개수의 레이블을 지정한다.
# x축 : 0,1,2,3,4,5,6,7,8,9,10,11,12,13
# y축 : 0,10,20,30,40,50,60,70,80,90,100

xticks_lable = ['','1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월','']
yticks_lable = ['0kg','10kg','20kg','30kg','40kg','50kg','60kg','70kg','80kg','90kg','100kg']

# x축 : 0,1,2,3,4,5,6,7,8,9,10,11,12,13
# y축 : 0,10,20,30,40,50,60,70,80,90,100

x = df['월']
y = df['몸무게']
plt.plot(x,y,'bo-', mfc='r',mec='r')

# title
plt.title('월별 몸무게 변화', size=15, color='b', fontweight='bold')

# 축 레이블
plt.xlabel('월')
plt.ylabel('몸무게(kg)')

# 틱
plt.xticks(range(0,14,1), labels=xticks_lable)
plt.yticks(range(0,110,10), labels=yticks_lable)

# 그리드
plt.grid(ls=':')
plt.show()

 

틱 스타일 지정

  • plt.tick_params( )
  • direction : 틱 위치 (in, out, inout)
  • length : 틱의 길이
  • width : 틱의 두께
  • color : 틱 색상
  • labelcolor : 틱 레이블 색상
  • colors : 틱과 틱 레이블 색상
  • pad : 틱과 레이블 사이의 거리
  • labelsize : 틱 레이블 사이즈
  • axis : 축 지정
# x축 : 0,1,2,3,4,5,6,7,8,9,10,11,12,13
# y축 : 0,10,20,30,40,50,60,70,80,90,100

xticks_lable = ['','1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월','']
yticks_lable = ['0kg','10kg','20kg','30kg','40kg','50kg','60kg','70kg','80kg','90kg','100kg']

# x축 : 0,1,2,3,4,5,6,7,8,9,10,11,12,13
# y축 : 0,10,20,30,40,50,60,70,80,90,100

x = df['월']
y = df['몸무게']
plt.plot(x,y,'bo-', mfc='r',mec='r')

# title
plt.title('월별 몸무게 변화', size=15, color='b', fontweight='bold')

# 축 레이블
plt.xlabel('월')
plt.ylabel('몸무게(kg)')

# 틱
plt.xticks(range(0,14,1), labels=xticks_lable)
plt.yticks(range(0,110,10), labels=yticks_lable)

#plt.tick_params(direction='inout',length=10,width=2,color='g',labelcolor='m' )
plt.tick_params(axis='x',direction='inout',length=10,width=2,colors='g',labelsize=12 )
plt.tick_params(axis='y',direction='inout',length=10,width=2,colors='b',labelsize=12 )
# 그리드
plt.grid(ls=':')
plt.show()