1. 한글 폰트
🍓 그래프에서 한글을 표시하고 싶으면 matplotlib에서 사용하는 폰트를 한글 폰트로 지정해야 함
# 기본 폰트는 아래 방법을 사용해서 알 수 있다
import matplotlib
print(matplotlib.rcParams['font.family'])
# ['sans-serif']
# 폰트를 변경하려면 다음과 같이 수행.
matplotlib.rcParams['font.family'] = '폰트 이름'
matplotlib.rcParams['axes.unicode_minus'] = False
📍 폰트를 변경하지 않으면 기본 폰트는 'sans-serif'
📍 matplotlib.rcParams['axes.unicode_minus'] = False
▶️ 한글 폰트를 지정한 후에 그래프에서 마이너스(-) 폰트가 깨지는 문제를 해결해 줌
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
# 폰트 변경
matplotlib.rcParams['font.family'] = 'AppleGothic'
matplotlib.rcParams['axes.unicode_minus'] = False
x = np.arange(0, 5, 1)
y1 = x
y2 = x + 1
y3 = x + 2
y4 = x + 3
plt.plot(x, y1, '>-r', x, y2, 's-g', x, y3, 'd:b', x, y4, '-.Xc')
plt.legend(['데이터1', '데이터2', '데이터3', '데이터4'], loc='best')
plt.xlabel('X 축')
plt.ylabel('Y 축')
plt.title('그래프 제목')
plt.grid(True)
plt.show()
2. 파이 그래프 Pie chart
🍓 파이 그래프는 범주별 구성 비율을 원형으로 표현한 그래프
🍓 파이 그래프에서 부채꼴 부분의 크기는 각 항목의 크기에 비례
🍓 전체 데이터에서 각 항목이 차지한 비율을 비교할 때 많이 사용
plt.pie(x [, labels=label_seq, autopct='비율 표시 형식(ex: %0.1f)',
shadow=False(기본) 혹은 True, explode=explode_seq,
counterClock=True(기본) 혹은 False, startangle=각도 (기본은 0)])
📍 'x' : 배열 확인 시퀀스 형태의 데이터
➡️ pie()는 x의 각 요소가 전체에서 차지하는 비율을 계산하고 그 비율에 맞게 부채꼴 크기를 결정해서 파이 그래프를 생성
📍 'labels' : x 데이터 항목의 수와 같은 문자열 시퀀스(리스트, 튜플)을 지정해 각 부채꼴 이름 지정
📍 'autopct' : 각 부채꼴 부분의 항목의 비율이 표시되는 숫자의 형식을 지정
➡️ 예를 들어 '%0.1f' - 소수점 첫째 자리까지 표시, '%0.0f' - 정수만 표시
➡️ '%0.1f%%' - %를 추가
📍 'shadow' : 그림자 효과를 지정. 기본 값은 False
📍 'explode' : 부채꼴 부분이 원에서 돌출되는 효과. 기본 값은 강조 효과가 없음
📍 'counterClock' : x 데이터에서 부채꼴 부분이 그려지는 순서가 반시계방향(True)인지 시계방향(False)인지를 지정. 기본값은 True로 반시계 방향
📍 'startangle' : 제일 처음 부채꼴 부분이 그려지는 각도로 x축을 중심으로 반시계 방향으로 증가. 기본값은 0
plt.figure(figsize = (w, h))
📍 w와 h는 그래프의 너비 width와 높이 height 를 의미. 단위는 인치 inch.
📍 값을 지정하지 않으면 (w, h)의 기본값은 (6, 4)
📍 w와 h를 같은 값으로 지정하면 생성되는 그래프는 가로와 세로의 비율은 1 대 1이 됨
import matplotlib
import matplotlib.pyplot as plt
# 한글 폰트 사용
matplotlib.rcParams['font.family'] = 'AppleGothic'
matplotlib.rcParams['axes.unicode_minus'] = False
fruit = ['사과', '바나나', '딸기', '오렌지', '포도']
result = [7, 6, 3, 2, 2]
plt.pie(result)
plt.show()
# 크기를 변경해서 출력
plt.figure(figsize=(7, 7))
plt.pie(result)
plt.show()
# 각 부채꼴 부분에 속하는 데이터의 라벨과 비율을 추가
plt.figure(figsize=(7, 7))
plt.pie(result, labels=fruit, autopct='%.1f%%')
plt.show()
# 각 부채꼴 부분은 x축 기준 각도 0도를 시작으로 반시계 방향으로 그려짐
# x축 기준 각도 90도에서 시작해서 시계방향으로 그리는 예
plt.figure(figsize=(7, 7))
plt.pie(result, labels=fruit, autopct='%.1f%%', startangle=90, counterclock=False)
plt.show()
# 그림자를 추가하고 특정 요소(사과)를 표시한 부채꼴 부분만 강조한 예.
explode_value = (0.1, 0, 0, 0, 0)
# 0.1 : 반지름의 10% 만큼 벗어나도록 설정.
plt.figure(figsize=(7, 7))
plt.pie(result, labels=fruit, autopct='%.1f%%', startangle=90,
counterclock=False, explode=explode_value, shadow=True)
plt.show()
[ 내용 참고 : IT학원 강의 및 위키독스 ]
'Programming Language > Python' 카테고리의 다른 글
[Python] Seaborn | 평균/빈도 막대 그래프 (0) | 2024.03.15 |
---|---|
[Python] Seaborn 라이브러리 | 시본 막대 그래프 - sns.barplot() / add_subplot() (2) | 2024.03.14 |
[Python] Matplotlib | 히스토그램 (Histogram) (0) | 2024.03.14 |
[Python] Matplotlib | 산점도 그래프 (0) | 2024.03.13 |
[Python] Matplotlib | 막대 그래프 Bar graph, Bar char (1) | 2024.03.13 |