FastCampus UpStage AI/Python

데이터 시각화(그래프 그리기) - MatPlotlib의 pyplot (1)

하오츠(해석:맛있다) 2024. 10. 2. 11:45

목표 

데이터 시각적으로 그래프화 하자


환경설정
matplotlib library가 설치된 환경이여야 한다.


1. 라이브러리 로드

import matplotlib.pyplot as plt 

 

2. 간단한 그래프 그리기 

 

1) x축은 default [0,1,2,3], y 축은 [2,3,4,5] 로 설정

 

 

 

 

 

 

 

 

 

 

 

plt.plot([2,3,4,5])

 

 

2) x축 [1,2,3,4], y축[2,4,6,8] 설정

 

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

 

 

3. 축 레이블 설정(축 이름 설정), 범례 설정(파란줄 이름 설정), 축 범위 설정, 선 종류, 마커 설정, 색상 설정, 타이틀 설정

 

1) 축 레이블 설정(xlabel, ylabel)

  plt.xlabel('x')
  plt.ylabel('y')

 

 

2) 범례설정(legend)

\

 plt.plot([1,2,3,4],[2,3,4,5], label = 'blue line')

 plt.legend(loc='upper right')

 

3) 축 범위(xlim, ylim, axis)

 plt.xlim([0,10])

plt.ylim([0,10])

 

or 

 

plt.axis([0,10,0,10])

 

 

 

- 4) 선 종류 (linestyle)

 

포맷 : '-' (Solid), '- -' (Dashed), ' : ' (Dotted), ' -. ' (Dash-dot)
linestyle 파라미터 : '-' (solid), '- -' (dashed), ' : ' (dotted), ' -. ' (dashdot)

튜플  : (0, (1, 1)) [dotted], (0, (5, 5)) [dashed], (0, (3, 5, 1, 5)) [dashdotted]

 

plt.plot( 1,2,3,4],[2,3,4,5], label = 'blue line' ,  linestyle = 'solid' )

 

 

- 5) 마커 설정 

 

포맷 : 'ro'(빨간색 원형), 'k'(검정색 삼각형)

marker 파라미터 : 's'(square), 'D'(diamond)

<포맷 종류>


plt.plot( 1,2,3,4],[2,3,4,5], label = 'blue line' ,  linestyle = 'solid' , marker = 'd')

 

 

 

- 6) 색상 설정

<색상 종류>

 

plt.plot( 1,2,3,4],[2,3,4,5], label = 'blue line' ,  linestyle = 'solid', marker = 'd', color = 'blue')

 

 

-7) 타이틀 설정(title)

plt.title('타이틀 이름', loc = 'center' )

 

 

 

예시)


plt.plot([1,2,3,4],[2,3,4,5], label = 'blue line', linestyle = 'solid', marker = 'd', color = 'blue')
plt.xlabel('X')
plt.ylabel('Y')

plt.xlim([0,10])
plt.ylim([0,10])

plt.legend(loc='upper right')

 

# 타이틀 이름 한글깨짐 문제 해결
plt.rcParams['font.family'] ='Malgun Gothic' 
plt.rcParams['axes.unicode_minus'] =False

plt.title('타이틀 이름', loc = 'center' )


plt.show()

 

4. 그래프 여러개 그리자

 

plt.plot([1, 2, 3, 4], [2.0, 3.0, 5.0, 10.0], 'r')
plt.plot([1, 2, 3, 4], [2.0, 2.5, 3.3, 4.5], color = 'violet' )

plt.xlabel('X-Label')
plt.ylabel('Y-Label')

plt.show()

 

 

1) 'r', 'violet' 그래프를 나눠서 그리자(subplot)

 

 

plt.subplot(2,1,1)
plt.plot([1, 2, 3, 4], [2.0, 3.0, 5.0, 10.0], 'r')
plt.title('r 그래프')

plt.subplot(2,1,2)
plt.plot([1, 2, 3, 4], [2.0, 2.5, 3.3, 4.5], color = 'violet' )
plt.title('violet 그래프')

plt.xlabel('X-Label')
plt.ylabel('Y-Label')

plt.tight_layout()

plt.show()

 

 

2)  'r', 'violet' 를 그리는데,  violet 을 막대 그래프로 표현하자

 

fig, ax1 = plt.subplots()
plt.xlabel('X-Label')
plt.ylabel('Y-Label')

ax1.plot([1, 2, 3, 4], [2.0, 3.0, 5.0, 10.0], 'r')

ax2 = ax1.twinx()
ax2.bar([1, 2, 3, 4], [2.0, 2.5, 3.3, 4.5], color = 'violet', alpha=0.7)

plt.show()