Matplotlib
- 파이썬 기반 시각화 라이브러리
- 한글에 대한 지원이 완벽하지 않음
- pandas와 연동이 용이함
- Matplotlib 공식 홈페이지
Matplotlib — Visualization with Python
seaborn seaborn is a high level interface for drawing statistical graphics with Matplotlib. It aims to make visualization a central part of exploring and understanding complex datasets. statistical data visualization Cartopy Cartopy is a Python package des
matplotlib.org
Matplotlib 설치
!pip install Matplotlib
Matplotlib import
# MATLAB과 비슷하게 명령어 스타일로 동작하는 함수의 모음
import matplotlib.pyplot as plt
Matplotlib 사용
plt.plot([y값1, y값2, y값3, ...])
plt.plot([1,2,3,4]) # 리스트의 값들이 y값들이며, x값 [0,1,2,3]을 자동으로 생성
plt.show()
plt.plot([x값1, x값2, x값3, ...], [y값1, y값2, y값3, ...])
# 첫번째 리스트는 x값, 두번째 list는 y값
plt.plot([1,2,3,4], [1,4,10,15])
plt.show()
numpy와 함께 사용
data = np.arange(1, 100) # 1부터 99까지 ndarray data에 담음
plt.plot(data) # 1 ~ 100 까지 y값으로 등록
plt.show()
두개의 선 그래프 나타내기
data1 = np.arange(1, 50) # 1부터 49까지 ndarray인 data1에 담음
plt.plot(data1) # data1 첫번째 y값으로 등록
data2 = np.arange(50, 100) # 50부터 99까지 ndarray인 data2에 담음
plt.plot(data2) # data2 두번째 y값으로 등록
plt.show()
여러개의 plot 그리기
subplot
- 여러 개의 subplot을 만들기 위해 사용되는 함수
# rows: 그림 내의 행(row) 수
# columns: 그림 내의 열(column) 수
# no: 현재 서브플롯의 위치를 지정하는 정수 값
subplot(rows, columns, no)
data1 = np.arange(1, 50)
plt.subplot(2,1,1) # 2행 1열 첫번째 subplot
plt.plot(data1)
data2 = np.arange(50, 100)
plt.subplot(2,1,2) # 2행 1열 두번째 subplot
plt.plot(data2)
plt.show()
# ,로 구분하지 않고 간단하게 사용 가능
data1 = np.arange(0, 100)
plt.subplot(131) # 1행 3열 첫번째 subplot
plt.plot(data1)
data1 = np.arange(0, 100)
plt.subplot(132) # 1행 3열 두번째 subplot
plt.plot(data1)
data1 = np.arange(0, 100)
plt.subplot(133) # 1행 3열 세번째 subplot
plt.plot(data1)
plt.show()
스타일 옵션
코랩에 나눔체 설치하기
1. 해당 코드 실행하기
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
plt.rc("font", family="NanumBarunGothic")
2. 상단 메뉴 "런타임" 클릭 후, 다시 시작 및 모두 실행
옵션 설정하기
# plt.figure : 가로 6인치, 세로 8인치로 설정
plt.figure(figsize=(6,8))
# 선 그래프 그리기
plt.plot([1,2,3], [1,2,3])
plt.plot([1,2,3], [2,4,6])
# plt.title(): 타이틀명: 타이틀, 글씨크기: 30으로 설정
plt.title("타이틀", fontsize=30)
# plt.xlabel(): x축 레이블명: x축, 글씨크기: 20으로 설정
plt.xlabel("X축", fontsize=20)
# plt.ylabel(): y축 레이블명: y축, 글씨크기: 20, rotation=0: y축 레이블이 수직으로 표시되도록 설정
plt.ylabel("y축", fontsize=20, rotation=0)
plt.show()
마커 설정하기
plt.figure(figsize=(15, 10))
plt.title("마커설정", fontsize=30)
# x,y 축은 1~9 까지의 값, color='b': 선의 색상은 파랑색으로 지정,
# marker='o': 원형 마커를 사용, linestyle='': 선 스타일은 없음
plt.plot(np.arange(10), np.arange(10), color='b', marker='o', linestyle='')
# x축은 1~9 까지의 값, y축은 np.arange(10)*2 값, color='r': 선의 색상은 빨간색으로 지정,
# marker='v' : 역삼각형 마커를 사용, linestyle='--': 선 스타일은 파선('--')
plt.plot(np.arange(10), np.arange(10)*2, color='r', marker='v', linestyle='--')
# x축은 1~9 까지의 값, y축은 np.arange(10)*3 값, color='y': 선의 색상은 노란색 지정,
# marker='*' : 별표(*) 마커를 사용, linestyle='-.': 선 스타일은 대시 점선('-.')
plt.plot(np.arange(10), np.arange(10)*3, color='y', marker='*', linestyle='-.')
# plt.legend(): 범례 추가
# loc="lower right": 범례를 그래프의 오른쪽 아래에 위치시킴
# ncol=3: 범례 항목을 3열로 배치
plt.legend(["10", "10*2", "10*3"], fontsize=15, loc="lower right", ncol=3)
plt.xlim(0, 12) # x축의 범위를 0부터 12까지로 설정, x축의 화면이 더 넓게 표시됨
plt.ylim(0, 30) # y축의 범위를 0부터 30까지로 설정, y축의 화면이 더 넓게 표시됨
plt.xticks(rotation=30) # x축의 눈금 레이블을 30도 회전
plt.yticks(rotation=30) # y축의 눈금 레이블을 30도 회전
plt.grid() # 그래프에 그리드를 추가, 가시성 향상에 도움됨
plt.show()
# x축 설정
x = ["파이썬", "데이터분석", "머신러닝", "딥러닝", "컴퓨터비전", "자연어처리"]
# y축 설정
y = [95, 80, 65, 30, 20, 5]
plt.figure(figsize=(8,5))
# plt.bar(): 막대 그래프를 그림
# align="edge" x축 글자가 앞으로 들어옴
# alpha=0.7: 막대 그래프의 투명도를 0.7로 설정
# color="red": 막대 그래프의 색상을 빨간색으로 설정
plt.bar(x, y, align="edge",alpha=0.7, color="red")
plt.title("AI 성적표", fontsize=25)
plt.ylabel("학생점수",rotation=0)
plt.show()
x = ["파이썬", "데이터분석", "머신러닝", "딥러닝", "컴퓨터비전", "자연어처리"]
y = [95, 80, 65, 30, 20, 5]
plt.figure(figsize=(8,5))
# plt.barh(): 수평 막대 그래프를 그림
# align="center": 수평 막대 그래프를 y 좌표의 중앙에 정렬
plt.barh(x, y, align="center",alpha=0.7, color="#e35f62")
plt.title("AI 성적표", fontsize=25)
plt.ylabel("학생점수",rotation=0)
plt.show()
'데이터 분석' 카테고리의 다른 글
5. 가상 쇼핑몰 데이터 프로젝트 (0) | 2023.06.12 |
---|---|
4. 데이터프레임 활용하기 (0) | 2023.06.12 |
2-16. 원 핫 인코딩(One Hot Encoding) (1) | 2023.06.09 |
2-15. select_dtypes (0) | 2023.06.09 |
2-14. 데이터프레임의 산술연산 (0) | 2023.06.09 |