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

Matplotlib 파이 차트에서 더 많은 색상을 생성하는 방법

Matplotlib에서 원형 차트(파이 차트)에 더 많은 색상을 적용하고 싶다면, 필요한 개수만큼 색상 목록과 데이터를 직접 생성하여 전달하면 됩니다. 이 글에서는 무작위 HEX 색상 코드를 n개 생성한 뒤, 이를 파이 차트에 적용하는 방법을 단계별로 살펴봅니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
  • 데이터 샘플의 개수를 나타내는 변수 n을 초기화합니다.
  • 리스트 컴프리헨션과 random.choice()를 사용해 무작위 HEX 색상 코드 n개를 생성합니다.
  • NumPy를 이용해 0과 1 사이의 무작위 데이터 포인트를 만듭니다.
  • 새 그림을 생성하거나 기존 그림을 활성화합니다.
  • add_subplot() 메서드로 그림에 축(Axes)을 추가합니다. 이때 aspect='equal' 옵션을 지정하면 원이 찌그러지지 않고 정확한 원형으로 표시됩니다.
  • pie() 메서드를 사용해 파이 차트를 그리며, 앞서 만든 색상 목록을 colors 인자로 전달합니다.
  • show() 메서드를 호출해 그림을 화면에 표시합니다.

예제 코드

import matplotlib.pyplot as plt
import random
import numpy as np

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

n = 40
color = ["#" + ''.join([random.choice('0123456789ABCDEF')
                        for j in range(6)]) for i in range(n)]
a = np.random.random(n)
f = plt.figure()
ax = f.add_subplot(111, aspect='equal')
p = plt.pie(a, colors=color)

plt.show()

코드 설명

위 예제에서 핵심은 다음 부분입니다:

  • n = 40: 총 40개의 조각으로 이루어진 파이 차트를 만듭니다.
  • color 리스트: '0123456789ABCDEF' 문자열에서 무작위로 문자를 6개 뽑아 '#RRGGBB' 형태의 HEX 색상 코드를 생성합니다. 이 과정을 n번 반복해 각 조각마다 고유한 색상을 할당합니다.
  • np.random.random(n): 각 조각의 크기가 될 0~1 사이의 무작위 값을 생성합니다.

실행 결과

코드를 실행하면 40개의 조각이 서로 다른 무작위 색상으로 채워진 파이 차트가 출력됩니다. 색상이 무작위로 생성되기 때문에 실행할 때마다 다른 색상 조합을 확인할 수 있습니다.

Matplotlib 파이 차트에서 더 많은 색상을 생성하는 방법

참고 사항

무작위 색상 대신 미리 정의된 컬러맵(colormap)을 사용할 수도 있습니다. 예를 들어 plt.cm.viridis(np.linspace(0, 1, n))처럼 작성하면 일관된 색상 그라데이션을 가진 n개의 색상을 얻을 수 있어, 데이터의 순서나 크기를 시각적으로 비교하기에 더 유용합니다.