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' 레이블의 첫 번째 막대 사이에 적절한 간격이 확보된 수직 막대 그래프가 출력됩니다.