목차
파이썬으로 데이터를 가시화하게 되면 그래프의 눈금이 내 마음대로 안 될 때가 많습니다. 눈금은 마치 파이썬이 알아서 해주는 걸로 넘어가기 일상인데요. xticks와 yticks 함수를 사용하면 간단하게 눈금을 변경할 수 있다는 사실을 알고 있었나요? 이번 글에서는 눈금 설정에 대해 완벽하게 정리해 보도록 하겠습니다.
1. 파이썬에서 일반적인 그래프 그리기
파이썬에서 데이터를 가시화할 때 일반적으로 아래와 같이 코드를 구성할 겁니다.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 7, 12, 1]
plt.plot(x, y, 'o--')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Sample Chart')
plt.show()
'일반적'이라는 의미는 데이터를 불러와 변수에 넣고 plt.plot을 이용하여 그래프를 만드는 겁니다. 이렇게 하면 각 데이터의 점이 그래프 창에 어느 위치에 있는지 잘 알 수가 없습니다. 특정 데이터의 위치를 보고 싶다면 그래프 설정을 해 줘야 합니다.
위의 그래프를 보면 x축의 눈금은 쓸데없이 많고 y축의 눈금은 너무 없어 한눈에 데이터를 쫓기 어렵습니다. 이를 위해 xticks와 yticks를 이용하여 눈금을 적절하게 표현해 주는 기술이 필요합니다.
2. xticks를 이용한 눈금 조정
위의 예제 코드에서 xticks를 사용하여 x축 눈금을 조정해 보겠습니다.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 15, 7, 12, 1]
plt.plot(x, y, 'o--')
plt.xticks([1, 2, 3, 4, 5])
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Sample Chart')
plt.grid()
plt.show()
xticks를 이용하여 소수점의 눈금들이 나오지 않게 조정해 봤습니다. 지금 방식은 데이터가 많아질 경우 특정값을 입력해야 하기 때문에 불편할 수 있습니다. plt.xticks() 함수 안의 값을 데이터 개수에 적응하도록 만들려면 아래의 코드를 사용하세요
plt.xticks(np.arange(1, len(x)+1))
3. yticks를 이용한 y축 눈금 조정
x축은 np.arange 함수를 이용하여 항시 x축의 개수에 맞게 적응할 수 있도록 구성해 봤습니다. y축의 경우에는 값을 나타내는 것으로 특정 limit을 잘 사용하게 됩니다. 예를 들어 다른 데이터와 비교하기 위해 y축을 0에서 15까지를 유지해야 하는 경우를 말합니다. 데이터가 많지 않다면 y값을 직접 넣는 것도 하나의 방법일 수 있습니다.
plt.yticks(y)
위의 코드를 본 코드에 넣으면 아래와 같은 그래프를 나타냅니다. 그리드가 있어서 듬성듬성 보이는 것이지 본래의 위치에 잘 배치되어 있는 점들입니다.
4. 눈금을 특정값으로 변경하기
xticks나 yticks를 이용하여 눈금의 수준을 조정해 봤습니다. 일정한 숫자가 아닌 특정 라벨로 변경을 하고 싶을 때는 xticks 내에 특정 라벨을 넣어주면 됩니다.
plt.xticks(np.arange(1, len(x)+1), ['A', 'B', 'C', 'D', 'E'])
ticks 안에 데이터 값을 넣은 후 특정 라벨을 넣게 되는 그래프에서는 특정 라벨로 눈금이 대체됩니다.
5. xticks와 yticks의 기본 사용법
두 함수는 사용방법이 같기 때문에 xticks 기준으로 정리합니다. xticks의 기본 사용법은 아래와 같습니다.
plt.xticks(ticks, labels=None, **kwargs)
ticks: x 축에 표시할 눈금의 위치를 지정하는 매개변수로 리스트나 배열 형태가 됩니다.
labels: 눈금 위치에 표시될 레이블을 설정하는 매개변수입니다. 레이블은 문자열의 리스트나 배열 형태를 써야 합니다.
**kwargs: 기타 추가적인 키워드 인수를 받습니다. 예를 들어, 폰트 크기, 회전 각도 등과 같은 눈금 레이블의 외관을 조정할 수 있는 인수를 포함할 수 있습니다.
6. 눈금의 형태를 바꾸는 tick_params 함수
xticks나 yticks는 값에 대한 설정이었다면 tick_params 함수는 눈금의 모양을 변경해 주는 역할을 합니다. 축 개별적으로 설정을 할 수도 있고 특정 축을 지정하지 않으면 양 축 모두 적용이 됩니다. 기본 사용은 다음과 같습니다.
plt.tick_params(axis='both', **kwargs)
axis 변수는 눈금을 설정하고자 하는 축을 지정하는 매개변수입니다. 'x', 'y', 'both'와 같은 값을 가질 수 있습니다. 기본으로 양쪽 축을 지정하고 있으므로 뒤쪽의 파라미터만 변경하게 되면 양축 모두 적용됩니다. 이 함수에서는 뒤쪽의 파라미터에 무엇이 있고 어떻게 사용하는지가 중요합니다.
direction: 눈금의 방향을 지정합니다. 'in'은 안쪽으로, 'out'은 바깥쪽으로, 'inout'은 양쪽으로 눈금을 표시합니다.
which: 사용할 눈금을 지정합니다. 'major'는 주 눈금, 'minor'는 보조 눈금을 나타냅니다.
length: 눈금의 길이
width: 눈금의 두께
pad : 눈금과 레이블과의 거리
color: 눈금의 색상
labelsize: 레이블의 크기
labelcolor: 레이블의 색상
위의 내용을 토대로 지금까지 보여왔던 예제 코드 안에 다음의 설정값을 넣어봤습니다. 특정 축을 따로 지정한 이유는 여러 가지의 예를 보여 주기 위함입니다. 실제로 axis의 값은 잘 넣지 않고 동시에 같이 변경하게 됩니다.
plt.tick_params(axis='x', direction='in', length=3, pad=6, labelsize=14, labelcolor='green', top=True)
plt.tick_params(axis='y', direction='inout', length=10, pad=15, labelsize=12, width=2, color='r')
7. 마치며
지금까지 파이썬으로 그래프를 그릴 때 자동으로 나왔던 눈금을 변경하기 위한 설정방법에 대해서 알아보았습니다. 해당 기능을 평소에는 잘 사용하지 않지만 보고서와 같은 자료를 작성할 때는 그래프가 멋있게 나와줘야 하기 때문에 자주 사용되는 기능입니다. 그리 어렵지 않으니 평소에도 즐겨 사용해 보면서 잘 익혀두는 건 어떨까요?
댓글