Colab이나 주피터 노트북 상에서는
plt.plot()
등의 명령문을 작성한 뒤,
plt.show()
를 통해서 바로 플롯을 보거나
plt.savefig()
를 통해서 플롯을 파일로 저장한다.
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()
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=
인자를 써서 글자크기를 정할 수 있다.
⭐플롯의 축이름을 짓는 꿀팁!🍯
앞에 글을 보지 않더라도 플롯을 봤을 때 어떤 내용인지 바로 파악할 수 있게 만들어야 된다.
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()도 폰트사이즈 설정 가능!)
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)
요런식으로 점,원,플러스 마커를 주입 시키면?!
요런식으로 나온다
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)
플롯을 완성한 다음에는 따로 저장을 해줄 수 있다.
인자로 파일명, 해상도(dpi=
)를 넣어주면 됨.
plt.savefig('plt문법연습',dpi=200)
근데 어디로 저장 되는거지..;;