Matplotlib를 사용하여 원형 그래프 그리기Python/Matplotlib2024. 6. 3. 23:17
Table of Contents
반응형
Matplotlib를 사용하여 원형 그래프를 그리는 예제입니다.
2024. 6. 3 최초작성
import matplotlib.pyplot as plt import numpy as np import pandas as pd def plot_class_distribution(y): # 8x8 인치의 그래프를 그리게 됩니다. fig, ax = plt.subplots(figsize=(8, 8)) # 입력 데이터프레임으로부터 클래스의 비율을 계산합니다. value_counts = y.value_counts() # 원형 그래프 생성합니다. wedges, texts, autotexts = ax.pie( # 파이 차트에 표시할 값들의 시퀀스입니다. 여기서는 클래스 분포를 나타내는 값들이 들어 있습니다. 즉, 각 클래스의 데이터 개수를 포함한 시리즈입니다. value_counts, # 파이 차트의 각 조각에 비율을 자동으로 표시하는 형식을 지정합니다. 이 람다 함수는 조각의 비율(p)을 받아서, # 이를 소수점 첫째 자리까지의 백분율({p:.1f}%)과 해당 조각의 실제 수치(({int(p*sum(value_counts)/100)}))로 변환하여 표시합니다. autopct=lambda p: f'{p:.1f}%\n({int(p*sum(value_counts)/100)})', # 파이 차트의 시작 각도를 지정합니다. 여기서는 90도로 설정되어 있어, 파이 차트가 위쪽에서 시작하여 시계 방향으로 그려집니다. startangle=90, # 파이 차트의 각 조각에 사용할 색상 팔레트를 지정합니다. colors=['yellow', 'orange'] ) # 그래프 제목입니다. ax.set_title('Distribution of Classes') # 범례입니다. ax.legend( wedges, # 파이 차트의 각 조각(Wedge) 객체의 리스트입니다. 이 객체들은 각 파이 조각을 나타냅니다. value_counts.index, # 범례 항목의 레이블 목록입니다. 여기서는 클래스의 이름이 사용됩니다. title="Class", # 범례의 제목입니다. 여기서는 "Class"로 설정되어 있습니다. loc="center left", # 범례의 위치로 'center left'가 설정되어, 범례가 축의 왼쪽 가운데에 위치하게 됩니다. ) # 레이아웃 조정 및 그래프를 화면에 보여줍니다. plt.tight_layout() plt.show() # 실행할때마다 똑같은 결과가 나오도록(결과의 재현성) 랜덤 시드를 설정합니다. np.random.seed(42) # 가상으로 생성할 데이터 크기입니다. data_size = 500 # 0과 1, 2개의 클래스에 대한 데이터를 생성합니다. 랜덤으로 생성되는 각 클래스의 개수를 정해주는 확률은 0.4와 0.6입니다. classes = np.random.choice([0, 1], size=data_size, p=[0.4, 0.6]) # 생성된 데이터를 판다스의 데이터프레임으로 변환합니다. y = pd.DataFrame(classes) # 클래스 분포를 나타내는 원형 그래프를 그려줍니다. plot_class_distribution(y) |
반응형
'Python > Matplotlib' 카테고리의 다른 글
Matplotlib에서 사용되는 color map ( cmap ) (0) | 2023.10.11 |
---|---|
Matplotlib 예제 – 하나의 figure에 여러 개의 이미지 출력하기 (0) | 2023.10.07 |
Matplotlib 그래프에 라벨 추가하기 (0) | 2022.06.19 |
Matplotlib로 FFT 그려보기 (2) | 2022.01.17 |
for문으로 실행하여 Matplotlib 그래프 저장하는 예제 (0) | 2021.11.29 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!