티스토리 뷰
Matplotlib 시작하기
- 파이썬의 데이터 시각화 라이브러리 cf) 라이브러리 vs 프레임워크
- matplotlib inline을 통해서 활성화
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
Case Study with Arguments
plt.plot([2, 4, 2, 4, 2]) # 실제 plotting을 하는 함수 # y = x + 1
plt.show() # plt를 확인하는 명령
### Figsize: Figure(도면)의 크기 조절
plt.figure(figsize=(6, 6)) # plotting을 할 도면을 선언
plt.plot([0, 1, 2, 3, 4]) # 실제 plotting을 하는 함수 # y = x
plt.show() # plt를 확인하는 명령
2차 함수 그래프 with plot()
# 리스트를 이용해서 1차함수 y=x를 그려보면:
plt.plot([0, 1, 2, 3, 4])
plt.show()
# numpy.array를 이용해서 함수 그래프 그리기
# y=x^2
x = np.array([1, 2, 3, 4, 5]) # 정의역
y = np.array([1, 4, 9, 16, 25]) # f(x)
plt.plot(x, y)
plt.show()
# np.arange(a, b, c) c: 0.01
x = np.arange(-10, 10, 0.01)
plt.plot(x, x**2)
plt.show()
# x, y축에 설명 추가하기
x = np.arange(-10, 10, 0.01)
###
plt.xlabel("x value")
plt.ylabel("f(x) value")
###
plt.plot(x, x**2)
plt.show()
# x, y축의 범위를 설정하기
x = np.arange(-10, 10, 0.01)
plt.xlabel("x value")
plt.ylabel("f(x) value")
###
plt.axis([-5, 5, 0, 25]) # [x_min. x_max, y_min, y_max]
###
plt.plot(x, x**2)
plt.show()
# x, y축에 눈금 설정하기
x = np.arange(-10, 10, 0.01)
plt.xlabel("x value")
plt.ylabel("f(x) value")
plt.xticks([-5, 5, 0, 25]) # [x_min. x_max, y_min, y_max]
plt.xticks([1 for i in range(-5, 5, 1)]) # x축의 눈금 설정, -5, -4, -3, ...
plt.yticks([1 for i in range(0, 24, 3)]) # y축의 눈금 설정,
plt.plot(x, x**2)
plt.show()
# 그래프에 title 달기
x = np.arange(-10, 10, 0.01)
plt.xlabel("x value")
plt.ylabel("f(x) value")
plt.axis([-5, 5, 0, 25]) # [x_min, x_max, y_min, y_max]
plt.xticks([1 for i in range(-5, 5, 1)]) # x축의 눈금 설정, -5, -4, -3, ...
plt.yticks([1 for i in range(0, 27, 3)]) # y축의 눈금 설정,
###
plt.title("y = x^2 graph")
###
plt.plot(x, x**2, label="trend")
###
plt.legend()
###
plt.show()
Matplotlib Case Study
꺾은선 그래프(Plot)
x = np.arange(20) # 0~19
y = np.random.randint(0, 20, 20) # 난수를 20번 생성
plt.plot(x, y)
# y축을 20까지 보이게 하고싶다면?
plt.axis([0, 20, 0, 20])
plt.yticks([0, 5, 10, 15, 20])
plt.show()
# Extra: y축을 20까지 보이게 하고싶다면, y축을 "5"단위로 보이게 하고 싶다면?
# .axis(), ytics()
산점도 (Scatter Plot)
plt.scatter(x, y)
plt.show()
박스 그림(Box Plot)
- 수치화 데이터에 대한 정보(Q1, Q2, Q3, min, max)
plt.boxplot((x, y))
plt.title("Box plot of x, y")
plt.show()
# Extra: plot의 title을 "Box plot of y"
막대그래프(Bar Plot)
- 범주형 데이터의 '값'과 크기를 직사각형으로 나타낸 그림
plt.bar(x, y)
plt.xticks(np.arange(0, 20, 1))
plt.show()
# Extra: xtics를 올바르게 처리합니다.
# cf) Histogram
# 도수분포를 직사각형의 막대 형태로 나타냈다.
# "계급"으로 나타낸 것이 특징: 0, 1,2가 아니라 0~2까지의 "범주형" 데이터로 구성 후 그림을 그림
plt.hist(y, bins=np.arange(0, 20, 2))
plt.xticks(np.arange(0, 20, 2))
plt.show()
# Extra: xtics를 올바르게 고칩니다.
원형 그래프(Pie Chart)
- 데이터에서 전체에 대한 부분의 비율을 부채꼴로 나타낸 그래프
- 다른 그래프에 비해서 비율 확인에 용이
- .pie()
z = [100, 300, 200, 400]
plt.pie(z, labels=('one', 'two', 'three', 'four'))
plt.show()
Seaborn
Matplotlib을 기반으로 더 다양한 시각화 방법을 제공하는 라이브러리
- 커널밀도그림
- 카운트그림
- 캣그림
- 스트립그림
- 히트맵
Seaborn Import 하기
import seaborn as sns
커널밀도그림(Kernel Density Plot)
- 히스토그램과 같은 연속적인 분포를 곡선 화해서 그린 그림
- sns.kdeplot()
# in Histogram
x = np.arange(0, 22, 2)
y = np.random.randint(0, 20, 20)
plt.hist(y, bins=x)
plt.show()
# kdeplot
sns.kdeplot(y, shade=True)
plt.show()
카운트그림(Count Plot)
- 범주형 column의 빈도수를 시각화 -> Groupby 후의 도수를 하는 것과 동일한 효과
- sns.countplot()
vote_df = pd.DataFrame({"name":['Andy', 'Bob', 'Cat'], "vote":[True, True, False]})
vote_df
# in matplotlib barplot
vote_count = vote_df.groupby('vote').count()
vote_count
plt.bar(x=[False, True], height=vote_count['name'])
plt.show()
# sns의 countplot
sns.countplot(x = vote_df['vote'])
plt.show()
'BOOTCAMP > 프로그래머스 인공지능 데브코스' 카테고리의 다른 글
[4주차 - Day1] Web Application with Flask (0) | 2023.04.05 |
---|---|
[3주차 - Day5] Python으로 시각화 프로젝트 (0) | 2023.04.01 |
[3주차 - Day3] Python으로 데이터 다루기 - Pandas (0) | 2023.03.31 |
[3주차 DAY02] Numpy 실습 (0) | 2023.03.30 |
[3주차 - Day1] Python으로 데이터 다루기 - numpy (0) | 2023.03.27 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ML
- 캐글
- ai
- 태블로
- 데이터분석
- 파이썬
- mysql
- nlp
- Kaggle
- LV2
- 프로그래머스
- 데이터 시각화
- SQLD
- SQL
- 알고리즘
- 인공지능
- 딥러닝
- 머신러닝
- LV1
- EDA
- lv4
- 부스트코스
- 데이터사이언스
- Python
- API
- 쿼리 테스트
- sql 테스트
- 프로그래밍
- Lv3
- 데이터 분석
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함