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

Matplotlib 수직 막대 그래프에서 Y축과 첫 번째 막대 사이 간격 만드는 방법

Matplotlib로 그린 수직 막대 그래프(bar chart)에서 Y축과 첫 번째 막대 사이에 간격을 두고 싶다면, xlim() 메서드를 사용해 X축의 표시 범위를 조정하면 됩니다. X축의 왼쪽 경계값을 데이터 시작 지점보다 넉넉하게 설정하면 자연스럽게 여백이 생깁니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백을 자동으로 조정합니다.
  • X축 값(x_val), X축 레이블(x_names), Y축 값(y_val) 리스트를 생성하고, 막대 폭(width)과 눈금 간격(interval) 변수를 초기화합니다.
  • bar() 메서드를 사용하여 막대 그래프를 그립니다.
  • xticks()로 X축의 눈금 위치와 레이블을 설정합니다.
  • yticks()로 Y축의 눈금 위치를 일정한 간격으로 설정합니다.
  • xlim()으로 현재 축의 X축 범위를 지정하여 Y축과 첫 번째 막대 사이에 간격을 만듭니다.
  • show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x_val = range(5)
x_names = ["one", "two", "three", "four", "five"]
y_val = [10, 30, 40, 20, 15]

width = 0.25
interval = 10

plt.bar(x_val, y_val, width=width, align='center')
plt.xticks(x_val, x_names)

plt.yticks(range(0, max(y_val), interval))
plt.xlim([min(x_val) - 0.5, max(x_val) + 0.5])

plt.show()

핵심 포인트

여기서 간격을 만드는 핵심은 다음 코드입니다.

plt.xlim([min(x_val) - 0.5, max(x_val) + 0.5])

min(x_val) - 0.5처럼 왼쪽 경계를 첫 번째 데이터 위치보다 작은 값으로 설정하면, Y축과 첫 번째 막대 사이에 여백이 생깁니다. 이 값을 더 크게(예: -1.0) 조정하면 간격을 더 넓힐 수 있으며, 반대로 오른쪽 경계인 max(x_val) + 0.5를 늘리면 마지막 막대 뒤쪽 여백도 조절할 수 있습니다.

실행 결과

위 코드를 실행하면 Y축과 'one' 레이블의 첫 번째 막대 사이에 적절한 간격이 확보된 수직 막대 그래프가 출력됩니다.