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

Matplotlib 막대그래프 막대를 오름차순으로 정렬하는 방법

Matplotlib에서 막대그래프(bar plot)의 막대를 오름차순으로 정렬하려면 파이썬 내장 함수인 sorted()를 활용하면 됩니다. 데이터를 정렬한 후 bar() 메서드에 전달하면 막대가 작은 값부터 큰 값 순서로 표시됩니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯(subplot) 주변과 사이의 여백을 조정합니다.
  • 막대그래프에 사용할 데이터 리스트를 준비합니다.
  • 데이터를 sorted() 함수로 오름차순 정렬한 뒤, bar() 메서드를 사용해 막대그래프를 생성합니다.
  • show() 메서드를 호출하여 그래프를 화면에 출력합니다.

예제 코드

from matplotlib import pyplot as plt

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

data = [3, 5, 9, 15, 12]

plt.bar(range(len(data)), sorted(data), color='red', alpha=0.5)

plt.show()

실행 결과

위 코드를 실행하면 원본 데이터 [3, 5, 9, 15, 12]가 오름차순으로 정렬되어, 왼쪽부터 값이 점점 커지는 형태의 빨간색 반투명(alpha=0.5) 막대그래프가 나타납니다.

추가 팁

내림차순으로 정렬하고 싶다면 sorted(data, reverse=True)처럼 reverse 매개변수를 True로 지정하면 됩니다. 또한 x축 레이블까지 함께 정렬해야 하는 경우에는 다음과 같이 데이터와 레이블을 쌍(pair)으로 묶어 정렬하는 방식을 사용할 수 있습니다.

labels = ['A', 'B', 'C', 'D', 'E']
pairs = sorted(zip(labels, data), key=lambda x: x[1])
sorted_labels, sorted_data = zip(*pairs)

plt.bar(sorted_labels, sorted_data)

이 방법을 사용하면 각 막대의 값 순서에 맞게 카테고리 레이블도 함께 이동하므로, 실무에서 더욱 유용하게 활용할 수 있습니다.