📍기본 설정
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # Windows, Mac일 때는 AppleGothic
#matplotlib.rcParams['font.family'] = 'HYGungSo-Bold'# 궁서체
matplotlib.rcParams['font.size'] = 15 # 폰트 크기
matplotlib.rcParams['axes.unicode_minus'] = False # 한글 폰트 사용 시 마이너스 글자가 깨지는 것방지
x = [1, 2, 3]
y = [2, 4, 8]
1. 범례
1.1 범례를 포함해서 그래프 출력하기
plt.plot(x, y, label='무슨 데이터')
plt.legend()
1.2 범례의 위치 지정
📌 아래 링크에서 자세한 내용 확인 가능
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html
(1) 키워드 사용
plt.plot(x, y, label='무슨 데이터')
plt.legend(loc='upper right') #오른쪽 위
location string | location code |
best (적당히 비어 있는 곳에 위치) | 0 |
upper right | 1 |
upper left | 2 |
lower left | 3 |
lower right | 4 |
right | 5 |
center left | 6 |
center right | 7 |
lower center | 8 |
upper center | 9 |
center | 10 |
plt.plot(x, y, label='범례')
plt.legend(loc=(0.5, 0.5)) #x축, y축 (0~1 사이) 세부적 위치 설정
2. 스타일
2.1 그래프 선의 두께 설정하기
plt.plot(x, y, linewidth=10) #선 두께
2.2 마커 (marker)
- 마커의 종류 선택 가능 : marker='원하는모양'
📌 아래 링크에서 마커의 종류와 표현 방법을 확인 가능
https://matplotlib.org/stable/api/markers_api.html
plt.plot(x, y, marker='o') #점을 찍어서 제시된 데이터 값 표시
plt.plot(x, y, marker='o', linestyle='None') #점을 찍어서 제시된 데이터 값 표시, 선 긋지 x
plt.plot(x, y, marker='v')
plt.plot(x, y, marker='X')
- 마커의 크기 설정 가능 : markersize = 크기
- 마커의 테두리 색 설정 가능 : markeredgecolor = '색깔'
plt.plot(x, y, marker='o', markersize=20, markeredgecolor='red')
- 마커의 내부 색 설정 가능 : markerfacecolor = '색깔'
plt.plot(x, y, marker='o', markersize=20, markeredgecolor='red', markerfacecolor='yellow')
2.3 선 스타일
- 선의 모양 : linestyle : '원하는모양'
📌아래 링크에서 선의 종류와 표현 방식 확인 가능
https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html
https://matplotlib.org/2.1.2/api/_as_gen/matplotlib.pyplot.plot.html
plt.plot(x, y, linestyle='-')
plt.plot(x, y, linestyle='-.')
plt.plot(x, y, linestyle='--')
plt.plot(x, y, linestyle=':')
- 선의 색깔 설정 : color = '색깔'
📌아래 링크에서 표현 가능한 색과 표현법 확인 가능
https://matplotlib.org/stable/gallery/color/named_colors.html
plt.plot(x, y,color='pink')
plt.plot(x, y,color='#ff0000')
plt.plot(x, y,color='b')
2.4 포맷 : 이전까지 했던 내용을 하나로 묶어서 작성 가능
plt.plot(x, y, 'ro--') #color, marker, linestyle 순으로 작성
plt.plot(x, y, 'bv:')
plt.plot(x, y, 'go') #linestyle은 언급 안 하면 None
# plt.plot(x, y, color='g', marker='o', linestyle='None')와 같은 결과
2.5 축약어
📌아래 링크의 표에서 확인 가능
https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html
- mfc : markerfacecolor
- ms : markersize
- mec : markeredgecolor
- ls : linestyle
2.6 그래프의 투명도
- alpha = 숫자
2.7 그래프 자체의 크기
plt.figure(figsize=(10, 5))
plt.plot(x,y)
plt.figure(figsize=(5,10))
plt.plot(x,y)
plt.figure(figsize=(10,5), dpi=50) #dots forinch 확대 ; 해상도 정의
plt.plot(x,y)
2.8 배경색
plt.figure(facecolor='yellow')
plt.plot(x,y)
plt.figure(facecolor='#a1c3ff')
plt.plot(x,y)
3. 파일 저장
- plt.savefig('파일명')
plt.plot(x, y)
plt.savefig('graph.png')
plt.plot(x, y)
plt.savefig('graph1.png', dpi=100) #해상도가 이전보다 더 큰 파일로 저장
plt.figure(dpi=200)
plt.plot(x,y)
plt.savefig('graph2.png') #dpi가 200인 파일
plt.figure(dpi=200)
plt.plot(x,y)
plt.savefig('graph3.png', dpi=100) #dpi가 100인 파일
4. 텍스트
- 반복문을 사용해서 각각의 요소에 대해 텍스트를 작성하는 것이 가능하다.
plt.plot(x, y, marker='o')
for idx, txt in enumerate(y):
plt.text(x[idx], y[idx]+0.3, txt) #데이터 기준 0.3 위에 작성됨
plt.plot(x, y, marker='o')
for idx, txt in enumerate(y):
plt.text(x[idx], y[idx]+0.3, txt, ha='center', color='blue') #수평정렬
5. 여러 데이터
- 하나의 그래프 안에 여러 데이터의 내용을 표현하기
days = [1, 2, 3] #1일, 2일, 3일
az= [2, 4, 8] #(단위 : 만명) 1일~3일까지의 아스트라제네카 접종인구
pfizer = [5, 1, 3] #화이자
moderna = [1,2,5] #모더나
plt.plot(days, az)
plt.plot(days, pfizer)
plt.plot(days, moderna)
- 각각의 그래프에 다른 속성을 주는 것이 가능하다.
plt.plot(days, az, label='az')
plt.plot(days, pfizer, label='pfizer', marker='o', ls = '--')
plt.plot(days, moderna, label='moderna', marker='s', linestyle='-.')
plt.legend()
- 범례를 열의 개수에 따라 늘여서 보여줄 수 있다.
plt.plot(days, az, label='az')
plt.plot(days, pfizer, label='pfizer', marker='o', ls = '--')
plt.plot(days, moderna, label='moderna', marker='s', linestyle='-.')
plt.legend(ncol=3) #col 개수에 걸쳐 범례 보여줌
6. 막대 그래프 (기본)
labels = ['강백호', '서태웅', '정대만'] #이름
values = [190, 187, 184] #키
plt.bar(labels, values)
- 속성으로 색깔, 투명도 등을 설정할 수 있다.
- 색깔의 경우 리스트를 이용해서 각각의 요소에 다른 색을 주는 것이 가능하다.
- y축 값의 범위 설정이 가능하다.
plt.bar(labels, values)
plt.ylim(175, 195) #y축의 범위
- 막대의 두께를 설정할 수 있다.
plt.bar(labels, values,width=0.5) #두께 얇아짐
- x축과 y축의 내용을 기울일 수 있다.
- x축 내용을 지정할 수 있다.
2주 뒤면 완강입니다!
'학회&동아리 > FORZA' 카테고리의 다른 글
[FORZA STUDY] 나도코딩 - 데이터분석 및 시각화 week6 (2) | 2023.05.27 |
---|---|
[FORZA STUDY] 나도코딩 - 데이터분석 및 시각화 week5 (0) | 2023.05.21 |
[FORZA STUDY] 나도코딩 - 데이터분석 및 시각화 week3 (3) | 2023.05.08 |
[FORZA STUDY] 나도코딩 - 데이터분석 및 시각화 week2 (2) | 2023.04.09 |
[FORZA STUDY] 나도코딩 - 데이터분석 및 시각화 week1 (0) | 2023.04.02 |