Matplotlib로 그래프를 그릴 때 X축에 소수점 값이 함께 표시되어 보기 불편한 경우가 있습니다. 이럴 때 X축 눈금을 정수(integer)로만 표시하도록 강제할 수 있습니다. 아래 단계를 따라 해보세요.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변의 여백(padding)을 조정합니다.
- 데이터 포인트로 구성된 두 개의 리스트 x와 y를 생성합니다.
- plot() 메서드를 사용하여 x와 y 데이터를 그래프로 그립니다.
- X축에 정수 눈금만 포함된 새로운 리스트를 만듭니다. math.floor()와 math.ceil()을 사용해 소수점을 제거하고 정수 값만 리스트에 담습니다.
- xlabel()과 ylabel()로 축 레이블을 설정합니다.
- title() 메서드로 그림의 제목을 지정합니다.
- show() 메서드를 호출하여 그림을 화면에 표시합니다.
예제 코드
import math
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
y = [0.17, 1.17, 2.98, 3.15, 4.11, 5.151]
x = [1.0, 1.75, 2.90, 3.15, 4.50, 5.50]
plt.plot(x, y)
new_list = range(math.floor(min(x)), math.ceil(max(x))+1)
plt.xticks(new_list)
plt.xlabel("X-axis ")
plt.ylabel("Y-axis ")
plt.title("Only Integers on the X-axis")
plt.show()실행 결과

참고: 더 간단한 대안 방법
matplotlib.ticker 모듈의 MaxNLocator를 사용하면 코드를 더 간결하게 작성할 수 있습니다. 다음과 같이 한 줄로 X축 눈금을 정수로 제한할 수 있습니다.
from matplotlib.ticker import MaxNLocator ax = plt.gca() ax.xaxis.set_major_locator(MaxNLocator(integer=True))
이 방식은 데이터 범위에 맞춰 적절한 정수 눈금을 자동으로 계산해 주므로, 눈금 개수를 직접 관리하고 싶지 않을 때 특히 유용합니다. 상황에 따라 plt.xticks() 방식과 MaxNLocator 방식 중 편리한 것을 선택하면 됩니다.