[데이터사이언스] matplotlib 기초 활용

홍랑·2021년 10월 8일
0

DataScience

목록 보기
2/5
using Python - anaconda & jupyter notebook

📌 matplotlib 기본 형태


Windows 환경일 때 matplotlib 활용 시작시 아래와 같이 준비한다.
import matplotlib.pyplot as plt
from matplotlib import rc

# 한글깨짐 해결, 마이너스 부호 깨짐 해결
rc("font", family="Malgun Gothic")
plt.rcParams['axes.unicode_minus'] = False

# 기본적으로 그래프를 그리게 하며 두 줄 같은 의미
# 현 개발환경에 내재되어 사실은 필요하지 않음
%matplotlib inline
get_ipython().run_line_magic("matplotlib", "inline")

간단한 선 그래프를 그리는 기본 코드를 확인하자.

# 가장 밑바탕이 되는 도화지 x축 10, y축 6 크기 설정
plt.figure(figsize=(10,6)) 
# x값, y값을 넣어 선 그래프 만듦
plt.plot([0,1,2,3,4,5,6,7,8,9], [0,1,2,3,2,5,6,-8,8,10])
# 위에 설정한 내용을 적용하고 보이도록 함
plt.show()

👉 기본 코드에서 옵션을 변경, 추가해 원하는 그래프를 그릴 수 있다.


📌 matplotlib 다양한 그래프

❕참고❕ matplotlib 사이트에서 원하는 예시 그래프의 코드를 가져올 수 있다.
❕참고❕ 변경할 옵션을 확인하고 싶다면 함수에 커서를 두고 [shift]+[tab]

📚 그래프 커스텀

선 타입, 색 등의 옵션 변경

# np.arange(a, b, s): a부터 b까지 s의 간격으로 데이터 만들기
t = np.arange(0, 5, 0.5)

plt.figure(figsize=(10,6))
plt.plot(t, t, "r--")		# 빨간색 일반점선
plt.plot(t, t ** 2, "bs")	# 파란색 사각점선
plt.plot(t, t ** 3, "g>")	# 초록색 삼각점선
plt.show()

x축, y축의 범위 지정

  • xlim(), ylim()
# 그래프 값 설정
t = list(range(0,7))
y = [1, 4, 5, 8, 9, 5, 3]

plt.figure(figsize=(10,6))
plt.plot(
    t,				# x축
    y,				# y축
    color="red",		# 빨간색 선
    linestyle="dashed", 	# "--" 와 같은 의미, 점선
    marker="o",			# 값 있는 지점에 원형 marker
    markerfacecolor="blue",	# 파란색 marker
    markersize=10		# 사이즈 10의 marker
)

plt.xlim([-0.5, 6.5]) 		# x축 범위: -0.5 ~ 6.5
plt.ylim([-0.5, 10])		# y축 범위: -0.5 ~ 10
plt.show()

산점도 그리기

  • scatter(x,y)
t = np.array(range(0,10))
y = np.array([9, 8, 7, 9, 8, 3, 2, 4, 3, 4])

plt.figure(figsize=(10,6))
# 직선그래프가 아닌 산점도를 그림
plt.scatter(t, y)
plt.show()

colorbar

  • colorbar 를 보여주어 값 크기 변화에 따라 다른 색의 마킹이 가능
colormap = t		# t: 0~9

plt.figure(figsize=(10,6))
plt.scatter(
    t, 
    y, 
    s=150, 		# marker size
    c=colormap,		# t 값에 따른 marker color
    marker="<"		# marker 모양 바뀌고 크기 커짐
) 
plt.colorbar()		# t 값에 따라 달라지는 색 보여줌
plt.show()

삼각함수 그래프 그리기

  • grid(True): 그리드 표시
  • title(): 그래프 제목 표기
  • xlabel(), ylabel(): 각 축 제목 표기
  • legend(): 각 선 데이터 의미인 '범례' 표기
    - default 0 은 가장 best인 빈 공간에 생성해주고 옵션 변경 가능
t = np.arange(0, 12, 0.01)

plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t), label="sin")	# sin 그래프
plt.plot(t, np.cos(t), label="cos") 	# cos 그래프
plt.grid(True)				# 그리드 표시
plt.title("Example of sinewave")	# 그래프 제목
plt.xlabel("시간(time)")			# x축 제목
plt.ylabel("진폭(Amplitude)")		# y축 제목
plt.legend(loc=6) 			# 범례 좌측 중앙에 생성
plt.show()



📌 pandas에서 plot 그리기


  • pandas에서 matplotlib을 가져와 사용
  • matplotlib 그래프 그리기와 유사한 사용법
# jupyter 실행 중 마지막 변수 값이 출력되는 경우가 있어 코드 끝에 ; 붙여줌

# data 내 모든 데이터를 직선 그래프로 나타내며 각 데이터마다 선 색이 다름
# 범례 추가되어 있음
data.plot();

# 해당 컬럼의 데이터의 막대(bar) 그래프 그려줌
data["column"].plot(kind="bar", figsize=(10,10));

# barh: horizon. 가로 막대 그래프
data["column"].plot(kind="barh", figsize=(10,10));

# title, gird 추가
data["column"].plot(
    kind="barh", 
    grid=True, 
    figsize=(10,10)
);
profile
호랑이 기운이 솟아나요🐯

0개의 댓글