안녕하세요~ 꽁냥이에요. 그래프에서 눈금은 부가적인 요소로 주된 요소는 아니지만 그래프를 해석하는데 도움이 되는 중요한 친구랍니다.
이번 포스팅에서는 Matploltib에서 눈금(Tick)을 조절하는 방법에 대해서 알아보겠습니다. Matplotlib에서는 tick_params를 이용하여 눈금을 보이게 한다거나 폭과 길이를 조절하는 등 눈금을 여러 가지 방식으로 조절할 수 있습니다.
여기서 다루는 내용은 다음과 같습니다.
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에 어떤 기능이 있는지 확인하고 싶은 분들은 여기를 참고해보세요. 지금까지 꽁냥이의 글 읽어주셔서 감사합니다. 안녕히 계세요.
'데이터 분석 > 시각화' 카테고리의 다른 글
[산점도(Scatter Plot)] 2. Matplotlib을 이용하여 산점도 멋지게 만들어보기 (1130) | 2021.05.22 |
---|---|
[산점도(Scatter Plot)] 1. Matplotlib을 이용하여 산점도 그리기 (1112) | 2021.05.21 |
[히트 맵(Heat Map)] 2. 히트 맵 꾸미기 (1128) | 2021.04.25 |
[히트 맵(Heat Map)] 1. 히트 맵 그리기 - 기본 (1674) | 2021.04.21 |
[줄기 잎 그림(Stem Plot)] Matplotlib을 이용하여 줄기-잎 그림 그리기. (1068) | 2021.04.09 |
댓글