본문 바로가기
데이터 분석/시각화

Matplotlib 그래프의 눈금(Tick) 조절하기

by 부자 꽁냥이 2021. 5. 5.

안녕하세요~ 꽁냥이에요. 그래프에서 눈금은 부가적인 요소로 주된 요소는 아니지만 그래프를 해석하는데 도움이 되는 중요한 친구랍니다.

 

이번 포스팅에서는 Matploltib에서 눈금(Tick)을 조절하는 방법에 대해서 알아보겠습니다. Matplotlib에서는 tick_params를 이용하여 눈금을 보이게 한다거나 폭과 길이를 조절하는 등 눈금을 여러 가지 방식으로 조절할 수 있습니다. 

 

여기서 다루는 내용은 다음과 같습니다.

 

1. 눈금(Tick) 숨기기

2. 눈금 폭과 길이 설정하기

3. 눈금 방향 정하기

4. 눈금과 눈금 라벨 간격 설정하기

5. 눈금 색깔 지정하기

6. 원하는 축에 눈금 조절하기


   1. 눈금(Tick) 숨기기

먼저 이번 포스팅에서 사용할 모듈을 임포트하고 데이터를 만들어 줍니다. 

 

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

 

data = np.random.randint(10,size=10)

 

위 데이터를 plot을 통하여 그려보면 다음과 같습니다.

 

fig = plt.figure(figsize=(6,6))
fig.set_facecolor('white')
plt.plot(range(len(data)),data,marker='o')
plt.show()

 

 

이제 눈금(Tick)을 지워 보도록 하겠습니다. 어렵지 않습니다. tick_params의 width 또는 length 인자를 0으로 설정하면 됩니다.

 

fig = plt.figure(figsize=(6,6))
fig.set_facecolor('white')
plt.plot(range(len(data)),data,marker='o')
plt.tick_params(width=0) ## 또는 length = 0
plt.show()

 

 

보시는 바와 같이 눈금이 없어진 것을 알 수 있습니다.


   2. 눈금 폭과 길이 설정하기

눈금의 폭은 tick_params의 width 와 length 인자를 이용하여 조절할 수 있습니다. 아래 코드는 width에 1~4를 넣어보면서 폭이 어떻게 변하는지 살펴볼 수 있는 코드입니다. 코드를 실행하고 눈금 폭이 어떻게 변하는지 확인해보세요.

 

fig = plt.figure(figsize=(10,10))
fig.set_facecolor('white')
width = [1,2,3,4]
for w in width:
    ax_idx = 220 + w
    ax = fig.add_subplot(ax_idx)
    ax.plot(range(len(data)),data,marker='o')
    ax.tick_params(width=w)
plt.show()

 

 

width가 커질 수록 눈금(Tick) 폭이 두꺼워지는 것을 알 수 있습니다. 아래 코드는 폭 대신 길이(length)가 어떻게 변하는지 살펴볼 수 있는 코드입니다.

 

fig = plt.figure(figsize=(10,10))
fig.set_facecolor('white')
length = [2,4,6,8]
for i, l in enumerate(length):
    ax_idx = 220 + i + 1
    ax = fig.add_subplot(ax_idx)
    ax.plot(range(len(data)),data,marker='o')
    ax.tick_params(length=l)
plt.show()

 

 

length 값이 커질수록 눈금(Tick) 길이가 길어지는 것을 알 수 있습니다.


   3. 눈금 방향 정하기

눈금 방향을 정한다는 것은 눈금을 프레임 기준으로 배치할 방향을 안쪽으로 할지 바깥쪽으로 할지 아니면 중앙으로 할 것인지를 설정한다는 뜻입니다. 막 눈금을 회전시킨다는 뜻이 아니에요. 이해하기 어렵다고요? 코드를 통해서 살펴보면 금방 이해가 됩니다.

 

tick_params의 direction 인자를 통해 눈금의 방향을 지정할 수 있습니다. direction이 가질 수 있는 값은 'in', 'out', 'inout' 3개입니다. 자 아래 코드를 실행해볼게요. 차이를 확실하게 보기 위해 눈금 길이를 8로 주었습니다.

 

fig = plt.figure(figsize=(10,10))
fig.set_facecolor('white')
direction = ['in', 'out', 'inout']
for i, d in enumerate(direction):
    ax_idx = 220 + i + 1
    ax = fig.add_subplot(ax_idx)
    ax.plot(range(len(data)),data,marker='o')
    ax.tick_params(direction=d, length=8)
    ax.set_title(d)
plt.show()

 

 

direction이 'in'인 경우에 눈금은 안쪽에 배치되고 'out'은 바깥쪽에 배치되며 'inout'인 경우 눈금이 중앙에 걸쳐 있는 것을 알 수 있습니다.

반응형

   4. 눈금과 눈금 라벨 간격 설정하기

Matplotlib에서는 눈금과 눈금 라벨 사이의 간격을 조절할 수 있는 기능도 제공합니다(너무 친절해요 >0<). tick_params의 pad 인자를 통해 조절할 수 있습니다. 아래 코드를 실행해서 간격의 차이를 눈으로 확인해보세요.

 

fig = plt.figure(figsize=(10,10))
fig.set_facecolor('white')
padding = [3,6,9,12]

for i,p in enumerate(padding):
    ax_idx = 220 + i + 1
    ax = fig.add_subplot(ax_idx)
    ax.plot(range(len(data)),data,marker='o')
    ax.tick_params(pad=p, width=2, length=8)
plt.show()

 

 

pad가 커질수록 눈금과 눈금 라벨의 간격이 멀어지는 것이 보이시나요??


   5. 눈금 색깔 지정하기

tick_params의 color를 이용하면 눈금 색상을 지정할 수 있습니다. 꽁냥이는 seaborn에서 color_palette가 제공하는 색상을 이용했어요.

 

fig = plt.figure(figsize=(10,10))
fig.set_facecolor('white')
colors = sns.color_palette('hls',4)

for i,c in enumerate(colors):
    ax_idx = 220 + i + 1
    ax = fig.add_subplot(ax_idx)
    ax.plot(range(len(data)),data,marker='o')
    ax.tick_params(color=c, width=2, length=8)
plt.show()

 

 

색상이 변하는 것을 확인할 수 있어요.


   6. 원하는 축에 눈금 조절하기

지금까지는 눈금을 설정했을 때 x, y축 모두 적용했는데요. 특정 축에만 설정할 수 있습니다. tick_params에 axis인자를 이용하면 됩니다. 아래 코드는 눈금의 길이를 8, 색상은 빨간색으로 설정하며 이를 x축, y축 그리고 두 개 축 모두에 적용하도록 하는 코드입니다.

 

fig = plt.figure(figsize=(10,10))
fig.set_facecolor('white')
axis = ['x', 'y', 'both']

for i, a in enumerate(axis):
    ax_idx = 220 + i + 1
    ax = fig.add_subplot(ax_idx)
    ax.plot(range(len(data)),data,marker='o')
    ax.tick_params(axis=a, width=2, length=8, color='r')
plt.show()

 

 


이번 포스팅에서는 눈금을 설정하는 방법에 대해서 알아보았습니다. 이 정도만 알아도 웬만한 눈금 조절은 다하실 거라 믿어요. 그 외에도 tick_params에 어떤 기능이 있는지 확인하고 싶은 분들은 여기를 참고해보세요. 지금까지 꽁냥이의 글 읽어주셔서 감사합니다. 안녕히 계세요.

 


 

댓글


맨 위로