[33일차]matplotlib의 기본문법

김준석·2024년 1월 11일
0
  • **matplotlib**은 다양한 데이터를 많은 방법으로 도식화 할 수 있도록 하는 파이썬 라이브러리로써, 우리는 **matplotlib**의 pyplot을 이용하게 된다.
  • **matplotlib**을 이용하면 numpy나 pandas에서 사용되는 자료구조를 쉽게 시각화 할 수 있다.

**matplotlib Visualization - 기본 문법**

기초 사용 방법

Colab이나 주피터 노트북 상에서는

plt.plot() 등의 명령문을 작성한 뒤,

plt.show()를 통해서 바로 플롯을 보거나

plt.savefig()를 통해서 플롯을 파일로 저장한다.

값 설정 plt.plot(x축,y축)

import matplotlib.pyplot as plt

#기본 문법 / 선그래프의 값을 넣는다. 그럼 plt에 값이 축적됨.
plt.plot([1,2,3],[3,6,9]) # 1,2,3이 x축, 3,6,9가 y축이 된다.
plt.plot([1,2,3],[2,4,9])

plt.show() # 축적된 값을 그래프형태로 보여

플롯 이름 지어주기 plt.title()

plt.title() 을 통해 플롯의 이름을 지어줄 수 있다.

import matplotlib.pyplot as plt
 
plt.plot([1,2,3],[3,6,9])
plt.plot([1,2,3],[2,4,9])

plt.title("이것은 타이틀 입니다")
plt.show()

x축, y축 설정 plt.xlabel(’축이름’,fontsize=)

x축 설정 : plt.xlabel(’축이름’,fontsize=)

y축 설정 : plt.ylabel(’축이름’,fontsize=)

plt.plot([1,2,3,3,9,7])
plt.plot([2,3,4,3,9,7])

plt.title('title', fontsize=20)

plt.xlabel('x축',fontsize=20)
plt.xlabel('y축',fontsize=20)
plt.show()

위의 코드에서 볼 수 있듯이 제목을 넣을 수 있는 부분은 fontsize= 인자를 써서 글자크기를 정할 수 있다.

⭐플롯의 축이름을 짓는 꿀팁!🍯

앞에 글을 보지 않더라도 플롯을 봤을 때 어떤 내용인지 바로 파악할 수 있게 만들어야 된다.

x축, y축 각도 변경 - plt.xticks()

이때 글자의 각도를 rotation= 인자를 통해 바꿔 줄 수도 있다.

90도로 바꿔보자

plt.xticks([1,2,3,4],rotation=90)

범례 설정 및 복습

plt.legend() 메소드를 이용해서 범례를 설정할 수 있다.

[10의 제곱, 10의 2제곱, 10의 로그] 3개의 데이터가 있다고 해보자

numpy의 arange 메소드를 이용하면 더 쉽게 연속되는 데이터를 생성할 수 있다.

#x축y축 값 설정
plt.plot(np.arange(10),np.arange(10))
plt.plot(np.arange(10),np.arange(10)**2)
plt.plot(np.arange(10),np.log(np.arange(10)))

위와 같이 진행하면

모두 x축은 0~9의 데이터를 갖고

첫번째 데이터 y축 = 0~9

두번째 데이터 y축 = 0,100,1000….

세번째 데이터 y축 = -inf(0의 로그는 -무한대이다.), 자연로그 1, 자연로그 2…

이후 이전에 진행했던 내용과 범례를 설정해보자

#x축y축 값 설정
plt.plot(np.arange(10),np.arange(10))
plt.plot(np.arange(10),np.arange(10)**2)
plt.plot(np.arange(10),np.log(np.arange(10)))

#타이틀 & font설정
plt.title('test.',fontsize=10)

#x축 & y축 lable 설정
plt.xlabel('Xlable', fontsize=10)
plt.ylabel('Ylable', fontsize=10)

#X tick, Y tick 90도 설정(눈금)
plt.xticks(rotation=90)
plt.yticks(rotation=90)

#legend 설정
plt.legend(['10','10*2','log'])

plt.show()

굳! (참고로 plt.legend()도 폰트사이즈 설정 가능!)

x축, y축 끝 값 설정 plt.xlim()

#x축, y축 limit 설정
plt.xlim(0,5)
plt.ylim(0.5,10)

축 값이 변경된 것을 확인할 수 있다.
(근데 0.5의 값은 없는데…??)

🔎언제 사용할까?

관측하고자 하는 값사이를 지정할때 사용!

연봉 데이터를 예로 들 때

연봉 2천~6천 사이를 본다고 하자.

그럼 ylim(2000,6000) 으로 설정하면 됨^^

가시성을 더 높여보자

선형 그래프나 산점도의 경우 두 데이터의 차이를 가시화 하기 위해 색이나 모양을 바꾸기도 한다.

❗특히, 산점도에서 color를 label로 주어 label에 따른 분포를 파악하는 것도 중요하다.

마커(점) 설정 marker=

이때plt.plot() 메소드의 marker= 인자를 통해

점 모양을 바꿀 수 있다.

# marker= 종류
# '.' : 점 마커
# 'o' : 원 마커
# 'v' : 삼각형 마커
# '+' : 플러스 마커
# '*' : 별표 마커
plt.plot(np.arange(10),np.arange(10),marker='.',markersize=5)
plt.plot(np.arange(10),np.arange(10)**2,marker='o',markersize=5)
plt.plot(np.arange(10),np.log(np.arange(10)),marker='+',markersize=15)

요런식으로 점,원,플러스 마커를 주입 시키면?!

요런식으로 나온다

line(선) 설정 linestyle=

위에서 말한대로 레이블별로 차이를 두면 가시성이 높아진다.

이번에는 선 모양을 바꾸는 방법을 알아보자

#라인(line)

# '-' : 실선
# '--' : 점선
# '-.' : 실+점선 -.-.-.- 요런식으로
# ':' : 완벽한 점선..!!!
plt.plot(np.arange(10),np.arange(10),marker='.',markersize=5,linestyle='--')
plt.plot(np.arange(10),np.arange(10)**2,marker='o',markersize=5,linestyle='-.')
plt.plot(np.arange(10),np.log(np.arange(10)),marker='+',markersize=15,linestyle=':')

위처럼 설정했을때

요로코롬 나온다!

선 색 color=, 투명도 alpha=

색은 기본으로 들어가지만 내가 특정 지을 수 있다.

투명도는 값이 겹칠 때 사용할 수 있다.

# 컬러(color)

# 'b' : blue
# 'g' : green
# 'r' : red
# 'c' : cyan
# 'm' : magenta
# 'y' : yellow
# 'k' : black
# 'w' : white

투명도는 기본 1로 소수점 단위로 낮추면 된다.

plt.plot(np.arange(10),np.arange(10),color='r',alpha =0.2)
plt.plot(np.arange(10),np.arange(10)**2,color='b',alpha = 0.4)
plt.plot(np.arange(10),np.log(np.arange(10)),color='g',alpha =1)

플롯 저장 plt.savefig(’파일명’, dpi=)

플롯을 완성한 다음에는 따로 저장을 해줄 수 있다.

인자로 파일명, 해상도(dpi=)를 넣어주면 됨.

plt.savefig('plt문법연습',dpi=200)

근데 어디로 저장 되는거지..;;

0개의 댓글