matplotlib.pyplot
- 데이터 분석의 꽃, 시각화 방법에서 가장 많이 사용되는 라이브러리인 matplotlib을 배워보자!
- matplotlib은 파이썬에 다양한 그래프 작성방법을 제공한다.
- seaborn, folium 같은 다른 다양한 시각화 라이브러리들은 matplotlib을 dependency로 가지고 있거나, 영향을 많이 받았다.
- matplotlib은 figure()를 기본적으로 그래프 그리는 객체로 사용하고, plot(), scatter() 함수를 이용하여 원하는 그래프를 그린다.
# matplotlib은 이렇게 불러오는 것이 관행이다.
import matplotlib.pyplot as plt
# 도화지를 깔고
plt.figure()
# 해당 리스트를 기준으로 하는 선을 그린다.
plt.plot([0,1,2,3,4], [1, 2, 4, 8, 16]) #plot(x,y)
# plot([1,2,3,4,5]) 이면 기본적으로 y축으로 나옴
# 보여주기
plt.show()
# sample data를 하나 만들어보자!
x = ["Americano", "Cafe Latte", "Vanilla Latte", "Cold Brew", "Flat White"]
y = [1463, 301, 866, 905, 274]
도화지에 그림을 그려보자!
순서대로 하나씩 세팅해본다.
- figure & figsize
- barplot
- grid
- title
- axis label
- lineplot
- set label
- legend
- set limit in axis
# 라인 & 막대 그래프 그리기
# 라인 그래프 그리기
plt.figure(figsize=(8,6))
# figsize= (0,0) 가로세로 튜플
plt.grid(alpha=0.3, color="black", linewidth=0.5)
# grid(격자무늬) alpha 진한정도 color="red", linewidth=굵기
plt.title("Coffee Sales in March", fontsize =20 , loc="left" )
# loc 로케이션 위치
plt.xlabel("Menu",fontsize =12, )
# x축 이름
plt.ylabel("sales",fontsize =12)
# y축 이름
# plt.plot(x,y)
# 라인 그래프 - 경향을 나타내는데 적합
plt.show()
# 막대 그래프 그리기
plt.figure(figsize=(8,6))
# figsize= (0,0) 가로세로 튜플
plt.grid(alpha=0.3, color="black", linewidth=0.5)
# grid(격자무늬) alpha 진한정도 color="red", linewidth=굵기
plt.title("Coffee Sales in March", fontsize =20 , loc="left" )
# loc 로케이션 위치
plt.xlabel("Menu",fontsize =12, )
# x축 이름
plt.ylabel("sales",fontsize =12)
# y축 이름
plt.bar(x, y, color="lime",label="Sales")
# 막대그래프, barh() 수평적 그래프 나와
plt.plot([100,200,400,800,1600],label="Google Trend")
# 새로운 라인그래프 추가
plt.legend()
# 범례를 그려줌 loc를 통해 위치 조정가능! 현재위치는 "best"
# 오른쪽 위에 표시되어 있는것을 확인 가능!
plt.ylim(0,2000)
# y축의 범위조정
plt.yticks([num for num in range(0, 2000, 200)])
#숫자 눈금 간격의 지정가능
plt.show()
이번에는 scatterplot을 그려보자!
- figure & figsize
- scatterplot
- set color
- set marker
import numpy as np
x= np.random.random(1000) # 정규분포를 따르는 랜덤 샘플링
y= np.random.random(1000)
plt.figure(figsize=(6,6))
plt.scatter(x,y, color= "red", marker="o",s=10,alpha= 0.3 )
# marker > < * 등 다양한 기호로 표현가능
# s는 사이즈
# alpha는 짙은 정도
plt.show()
subplot을 이용하여 여러 개의 plot을 한번에 그려보자!
# subplot()을 이용하여 여러개의 plot을 하나의 figure에 출력할 수 있다.
# plt.subplot(nrows, ncols, index) number of rows, columns
# nrows와 ncols가 있다고 했을 때의 위치!
# 처음할 때 굉장히 헷갈린다!!! 2 x 2로 연습을 많이 해보자! :)
# plt.subplot(2, 1, 1) # 로우 2개 컬럼 1개의 1번쨰꺼
# plt.subplot(2, 1, 2) # 로우 2개 컬럼 1개의 2번째꺼
plt.figure(figsize=(6,8))
plt.subplot(1, 2, 1 )
plt.plot([2,5,6])
plt.subplot(3, 2, 2)
plt.plot([1,2,3])
plt.subplot(3, 2, 4)
plt.bar([1,2,3],[4,5,6])
plt.subplot(3, 2, 6)
plt.plot([4,5,6])
plt.show()
번외. DataFrame으로 바로 plotting 가능
# sample data를 다시 만들자!
x = ["Americano", "Cafe Latte", "Vanilla Latte", "Cold Brew", "Flat White"]
y = [1463, 301, 866, 905, 274]
## 번외. DataFrame으로 바로 plotting 가능
import pandas as pd
df = pd.DataFrame({"Menu" : x, "Count" : y})
df.plot(kind="bar", x="Menu", y="Count")
# df.plot(kind ="bar")
# kind ="bar"안쓰면 plot가 디폴트
df = pd.DataFrame(data= y, index= x, columns=["Count"])
df.plot(kind ="bar")
# 위에 두 코드와 더 위의 두 코드 둘다 결과 그래프가 동일하다.
# 아래는 데이터를 y, 인덱스를 x, 열이름을 Count로 하였고,
# 위는 x를 Menu, Y를 Count라는 데이터 프레임을 만들고 하였다.
# 판다스 데이터 프레임도 matplotlib 대신 바로 plot를 써서 그릴수 있다.
'Python > Data Analysis Library' 카테고리의 다른 글
01. Package_Numpy (0) | 2022.07.25 |
---|---|
Part03 Chapter.02 데이터 분석 라이브러리 09. seaborn plots (실습) (0) | 2022.07.24 |
Part03 Chapter.02 데이터 분석 라이브러리 07. Seaborn을 사용하는 이유 (0) | 2022.07.18 |
Part03 Chapter.02 데이터 분석 라이브러리 06. Pandas method (실습) (0) | 2022.07.18 |
Part03 Chapter.02 데이터 분석 라이브러리 05. Pandas DataFrame (0) | 2022.07.18 |