Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 X축 값을 정수로만 표시하는 방법

Matplotlib로 그래프를 그릴 때 X축에 소수점 값이 함께 표시되어 보기 불편한 경우가 있습니다. 이럴 때 X축 눈금을 정수(integer)로만 표시하도록 강제할 수 있습니다. 아래 단계를 따라 해보세요.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변의 여백(padding)을 조정합니다.
  • 데이터 포인트로 구성된 두 개의 리스트 xy를 생성합니다.
  • 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에서 X축 값을 정수로만 표시하는 방법

참고: 더 간단한 대안 방법

matplotlib.ticker 모듈의 MaxNLocator를 사용하면 코드를 더 간결하게 작성할 수 있습니다. 다음과 같이 한 줄로 X축 눈금을 정수로 제한할 수 있습니다.

from matplotlib.ticker import MaxNLocator

ax = plt.gca()
ax.xaxis.set_major_locator(MaxNLocator(integer=True))

이 방식은 데이터 범위에 맞춰 적절한 정수 눈금을 자동으로 계산해 주므로, 눈금 개수를 직접 관리하고 싶지 않을 때 특히 유용합니다. 상황에 따라 plt.xticks() 방식과 MaxNLocator 방식 중 편리한 것을 선택하면 됩니다.