Matplotlib 파이 차트

MatplotlibBeginner
지금 연습하기

소개

이 실험에서는 Python 에서 가장 인기 있는 데이터 시각화 라이브러리 중 하나인 Matplotlib 을 사용하여 파이 차트 (pie chart) 를 생성하고 사용자 정의하는 방법을 배웁니다. 파이 차트는 원형 통계 그래픽으로, 수치적 비율을 설명하기 위해 슬라이스로 나뉩니다.

데이터 준비부터 시작하여 기본적인 파이 차트를 그린 다음, "explode" 효과, 백분율 레이블, 그림자 등을 점진적으로 추가하여 차트를 더 유익하고 시각적으로 매력적으로 만들 것입니다.

모든 작업은 LabEx WebIDE 내에서 수행됩니다. 파일에 Python 코드를 작성하고 실행하여 차트 이미지를 생성합니다. 이 환경에서는 그래픽 디스플레이를 사용할 수 없으므로, plt.savefig()를 사용하여 차트를 이미지 파일로 저장한 다음 IDE 에서 직접 볼 수 있습니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 94%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

레이블 및 크기 리스트 준비

이 단계에서는 파이 차트를 그리는 데 필요한 데이터를 준비합니다. 파이 차트에는 두 가지 주요 데이터 세트가 필요합니다. 각 슬라이스의 레이블과 각 슬라이스의 해당 크기 또는 값입니다.

먼저 Python 스크립트를 생성합니다. 왼쪽에 있는 WebIDE 파일 탐색기에서 project 디렉토리 안에 main.py라는 파일이 보일 것입니다. 이 파일을 더블 클릭하여 편집기에서 엽니다.

이제 main.py에 다음 코드를 추가합니다. 이 코드는 두 개의 Python 리스트를 정의합니다. 범주를 위한 labels와 해당 비율을 위한 sizes입니다.

## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
  • labels: 파이 차트의 각 슬라이스를 레이블링하는 데 사용될 문자열 리스트입니다.
  • sizes: 각 슬라이스의 값 또는 비율을 나타내는 숫자 리스트입니다. 이 값들의 합계가 전체 파이를 나타냅니다.

코드를 추가한 후 main.py 파일은 다음과 같이 보일 것입니다. 이 스크립트는 아직 아무런 출력을 생성하지 않지만, 다음 단계를 위한 필요한 데이터를 설정합니다.

plt.pie(sizes, labels=labels) 를 사용하여 파이 차트 플로팅

이 단계에서는 이전 단계의 데이터를 사용하여 기본적인 파이 차트를 그립니다. Matplotlib 라이브러리의 plt.pie() 함수를 사용할 것입니다.

먼저 관례적으로 plt라는 별칭으로 가져오는 matplotlib.pyplot 모듈을 가져와야 합니다. 그런 다음 sizeslabels 리스트를 인수로 전달하여 plt.pie() 함수를 호출할 수 있습니다.

이 환경에서는 GUI 창을 표시할 수 없으므로 plt.savefig()를 사용하여 차트를 이미지 파일로 저장할 것입니다.

main.py 파일을 다음 코드로 업데이트하세요.

import matplotlib.pyplot as plt

## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]

## Create a figure and a set of subplots
fig, ax = plt.subplots()

## Plot the pie chart
ax.pie(sizes, labels=labels)

## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart.png')

print("Pie chart saved to pie_chart.png")

이제 스크립트를 실행해 보겠습니다. WebIDE 에서 터미널을 열고 (터미널 패널의 + 아이콘 또는 Terminal > New Terminal 메뉴를 사용할 수 있습니다) 다음 명령을 실행합니다.

python3 main.py

터미널에서 다음과 같은 출력을 볼 수 있습니다.

Pie chart saved to pie_chart.png

project 디렉토리에 pie_chart.png라는 새 파일이 나타납니다. 파일 탐색기에서 pie_chart.png를 더블 클릭하여 열고 첫 번째 파이 차트를 확인하세요.

Pie chart

explode 매개변수를 사용하여 explode 효과 추가

이 단계에서는 파이 차트의 특정 슬라이스를 "폭발"시켜 강조 표시하는 방법을 배웁니다. 이는 파이의 중심에서 약간 떨어뜨리는 것을 의미합니다. 이는 pie() 함수의 explode 매개변수를 사용하여 달성됩니다.

explode 매개변수는 sizes 데이터와 길이가 같은 튜플 또는 리스트를 받습니다. 튜플의 각 값은 각 웨지 (wedge) 를 얼마나 반지름의 비율만큼 오프셋할지를 지정합니다. 0은 슬라이스가 제자리에 유지됨을 의미하고, 0.1과 같은 0 이 아닌 값은 슬라이스를 바깥쪽으로 이동시킵니다.

main.py를 수정하여 'Hogs' 슬라이스를 폭발시키겠습니다. 또한 이전 차트와 비교하기 위해 출력을 새 파일인 pie_chart_explode.png에 저장할 것입니다.

main.py 파일을 다음 코드로 업데이트하세요.

import matplotlib.pyplot as plt

## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  ## only "explode" the 2nd slice (i.e. 'Hogs')

## Create a figure and a set of subplots
fig, ax = plt.subplots()

## Plot the pie chart with explode effect
ax.pie(sizes, explode=explode, labels=labels)

## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart_explode.png')

print("Pie chart with explode effect saved to pie_chart_explode.png")

이제 터미널에서 업데이트된 스크립트를 실행합니다.

python3 main.py

다음과 같은 출력을 볼 수 있습니다.

Pie chart with explode effect saved to pie_chart_explode.png

이제 프로젝트 디렉토리에 pie_chart_explode.png라는 새 파일이 있습니다. 이 파일을 열어 'Hogs' 슬라이스가 나머지 파이에서 약간 분리된 것을 확인하세요.

Pie chart with explode effect

autopct='%1.1f%%'를 사용하여 백분율 표시

이 단계에서는 차트를 더 유익하게 만들기 위해 각 슬라이스에 백분율 레이블을 추가합니다. 이는 autopct 매개변수를 사용하여 수행할 수 있습니다.

autopct 매개변수는 각 슬라이스의 백분율 값이 표시되는 방식을 결정하는 형식 문자열을 받습니다. 예를 들어, '%1.1f%%'는 숫자를 소수점 첫째 자리까지의 부동 소수점 숫자로 표시하고 그 뒤에 퍼센트 기호를 붙입니다. 마지막의 %%는 리터럴 % 기호를 표시하는 데 필요합니다.

main.py를 업데이트하여 백분율을 포함시키겠습니다. 결과는 pie_chart_percent.png에 저장됩니다.

import matplotlib.pyplot as plt

## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  ## only "explode" the 2nd slice (i.e. 'Hogs')

## Create a figure and a set of subplots
fig, ax = plt.subplots()

## Plot the pie chart with explode and percentage
ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%')

## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart_percent.png')

print("Pie chart with percentages saved to pie_chart_percent.png")

터미널에서 스크립트를 다시 실행합니다.

python3 main.py

출력은 다음과 같습니다.

Pie chart with percentages saved to pie_chart_percent.png

이제 파일 탐색기에서 pie_chart_percent.png를 엽니다. 각 슬라이스에 백분율 값이 표시된 것을 볼 수 있습니다.

Pie chart with percentages

shadow=True 를 사용하여 그림자 설정

이 마지막 단계에서는 파이 차트에 그림자를 추가하여 약간의 3D 효과를 줄 것입니다. 이는 shadow 매개변수를 True로 설정하여 쉽게 수행할 수 있습니다.

지금까지 배운 모든 기능 (explode, autopct, shadow) 을 결합해 보겠습니다. 최종 차트는 pie_chart_final.png로 저장됩니다.

main.py 파일을 다음의 전체 코드로 업데이트하세요.

import matplotlib.pyplot as plt

## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  ## only "explode" the 2nd slice (i.e. 'Hogs')

## Create a figure and a set of subplots
fig, ax = plt.subplots()

## Plot the final pie chart with all features
ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
        shadow=True, startangle=90)

## Equal aspect ratio ensures that pie is drawn as a circle.
ax.axis('equal')

## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart_final.png')

print("Final pie chart saved to pie_chart_final.png")

이 최종 버전에서는 startangle=90을 추가하여 파이 차트의 시작점을 시계 반대 방향으로 90 도 회전시키고, ax.axis('equal')을 추가하여 파이 차트가 완벽한 원으로 그려지도록 했습니다.

스크립트를 마지막으로 한 번 더 실행합니다.

python3 main.py

출력은 다음과 같습니다.

Final pie chart saved to pie_chart_final.png

pie_chart_final.png를 열어 폭발된 슬라이스, 백분율 레이블, 그림자가 포함된 완성된 모든 기능을 갖춘 파이 차트를 확인하세요.

Final pie chart

요약

실습을 완료하신 것을 축하드립니다! Python 의 Matplotlib 를 사용하여 파이 차트를 생성하고 사용자 정의하는 방법을 성공적으로 배우셨습니다.

이 실습에서는 다음을 배웠습니다.

  • 파이 차트용 데이터 (레이블 및 크기) 준비하기.
  • plt.pie()를 사용하여 기본 파이 차트 플로팅하기.
  • plt.savefig()를 사용하여 Matplotlib 플롯을 이미지 파일로 저장하기.
  • explode 매개변수를 사용하여 슬라이스 강조하기.
  • autopct 매개변수를 사용하여 슬라이스에 백분율 값 표시하기.
  • shadow=True 매개변수로 시각적인 3D 효과 추가하기.

이제 데이터 시각화 프로젝트를 위한 유익하고 시각적으로 매력적인 파이 차트를 만드는 기본적인 기술을 갖추게 되었습니다.