본문 바로가기
데이터 분석

Matplotlib

by 코낄2 2023. 12. 10.

1. Matplotlib

Matplotlib(맷플롯립)은 파이썬에서 2D 그래픽을 생성하는 데 사용되는 시각화 라이브러리로, 과학 및 엔지니어링 분야에서 널리 사용됩니다. 주로 선 그래프, 산점도, 막대 그래프 등을 그릴 수 있으며, 데이터 시각화에 활용됩니다. 한글에 대한 지원이 완벽하지 않지만 pandas와 연동이 용이합니다.

설치 : !pip install matplotlib

import matplotlib.pyplot as plt

import matplotlib.pyplot as plt는 Matplotlib 라이브러리를 사용할 때 일반적으로 사용되는 명령문입니다. 이 명령문은 Matplotlib의 pyplot 모듈을 plt라는 별칭으로 가져오는 역할을 합니다. Matplotlib은 여러 모듈로 구성되어 있고, 그 중 pyplot 모듈은 간편한 그래픽 기능을 제공하는데 주로 사용됩니다.

plt.plot([1, 2, 3, 4]) # y값
plt.plot([1, 2, 3, 4], [1, 5, 10, 15]) # x, y값

 

첫번째 코드의 리스트의 값들은 y값들이며, x값은 자동으로 만들어줍니다.

x값을 안넣으면 자동으로 생성됩니다.

 

 

 

 

 

 

 

두번째 코드처럼 리스트 값을 둘다 넣어주면 x,y값 순서로 표를 생성합니다.

 

 

 

 

 

 

 

 

 

data = np.arange(1, 100)
plt.plot(data)
plt.show()

data1 = np.arange(1, 50)
plt.plot(data1)
data2 = np.arange(50, 100)
plt.plot(data2)
plt.show()

만약 두 개의 플롯을 별개의 그래프로 그리고 싶다면, plt.figure()를 사용하여 새로운 그림을 생성하면 됩니다.

data1 = np.arange(1, 50)
plt.plot(data1)

plt.figure()  # 새로운 그림 생성

data2 = np.arange(50, 100)
plt.plot(data2)

plt.show()

# 여러개의 plot을 그리는 방법

subplot(row, column, no)
✔️ (*행에 *열, *번째)

 

data1 = np.arange(1, 50)
plt.subplot(2, 1, 1) # 2행에 1열, 1번째
plt.plot(data1)

data2 = np.arange(50, 100)
plt.subplot(2, 1, 2) # 2행에 1열, 2번째
plt.plot(data2)

plt.show()

data1 = np.arange(1, 50)
plt.subplot(1, 2, 1)
plt.plot(data1)

data2 = np.arange(50, 100)
plt.subplot(1, 2, 2)
plt.plot(data2)

plt.show()

# 1행 3열 subplot
data1 = np.arange(0,100)
plt.subplot(131) # = plt.subplot(1, 3, 1) 콤마 생략 가능
plt.plot(data1)

data2 = np.arange(0,100)
plt.subplot(1, 3, 2)
plt.plot(data2)

data3 = np.arange(0,100)
plt.subplot(1, 3, 3)
plt.plot(data3)

plt.show()

2. 스타일 옵션

✔️한글 사용을 위해 설치

!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
plt.rc('font', family='NanumBarunGothic')
# 나눔바른고딕 폰트 사용.
plt.figure(figsize=(6,8)) # inch/ 가로,세로 사이즈
plt.plot([1,2,3], [1,2,3])
plt.plot([1,2,3], [2,4,6])
plt.title('제목', fontsize= 30)
plt.xlabel('x축', fontsize= 20)
plt.ylabel('y축', fontsize= 20, rotation=0) # rotation 걸면 제목 글씨 돌아감
plt.show()

plt.figure(figsize=(15,10))
plt.title('마커설정', fontsize = 30)
plt.plot(np.arange(10), np.arange(10), color='deepskyblue', marker='o', linestyle= '-.')
plt.plot(np.arange(10), np.arange(10)*2, color='deeppink', marker='v', linestyle= '--')
plt.plot(np.arange(10), np.arange(10)*3, color = 'gold', marker='*',linestyle='')

# 범례 - 기본위치는 왼쪽 상단
plt.legend(['10', '10*2', '10*3'], fontsize= 15, loc= 'lower right', ncol=3)

# 범위
plt.xlim(0, 12)
plt.ylim(0, 30)

# 축에 숫자 각도 틀기
plt.xticks(rotation=30)
plt.yticks(rotation=30)

# 격자 만들기
plt.grid()
plt.show()

x = ['파이썬', ' 데이터분석', '머신러닝', '딥러닝', '자연어처리','컴퓨터비전']
y = [95, 80, 75, 50, 40, 25]

plt.figure(figsize= (8, 5))
plt.title('AI 성적표', fontsize = 25)
plt.ylabel('수강생 점수')
plt.bar(x,y, alpha= 0.4, color = 'deeppink', width= 0.5) # align = 'edge'
plt.show()

x = ['파이썬', ' 데이터분석', '머신러닝', '딥러닝', '자연어처리','컴퓨터비전']
y = [95, 80, 75, 50, 40, 25]

plt.figure(figsize= (8, 5))
plt.title('AI 성적표', fontsize = 25)
plt.ylabel('수강생 점수')
plt.barh(x,y, alpha= 0.4, color = 'deepskyblue') # align = 'edge'
plt.show()

'데이터 분석' 카테고리의 다른 글

상권별 업종 밀집 통계 예제  (0) 2023.12.23
가상 쇼핑몰 데이터 예제  (0) 2023.12.16
판다스3  (0) 2023.12.08
판다스2  (0) 2023.12.08
판다스1  (0) 2023.12.05