본문 바로가기

데이터 분석 학습

[모두의 데이터분석 With 파이썬] Unit.04 리뷰 / 기본 그래프 그리기

1. 2022.03.23 - [데이터 분석 학습] - [모두의 데이터분석 With 파이썬] Unit.01 리뷰 / CSV, 아나콘다, 크롬

2. 2022.03.23 - [데이터 분석 학습] - [모두의 데이터분석 With 파이썬] Unit.02 리뷰 / 주피터, 코랩

3. 2022.03.23 - [데이터 분석 학습] - [모두의 데이터분석 With 파이썬] Unit.03 리뷰 / 데이터 전처리

 

UNIT.04 기본 그래프 그리기

 

 

앞선 장(기온 데이터 분석)에서 우리는 데이터를 추출해서 출력하는 법을 배웠다.

이번엔 '데이터 시각화'를 파이썬을 통해 구현해보자.

 

이번에도 마찬가지로 데이터 시각화도 남들이 만들어 놓은 '라이브러리(모듈의 집합)'를 사용한다. 
애초에 우리는 이미지를 제로부터 만들 능력이 없기 때문에(...) 이건 앞으로도 없을 것 같다.

 

무지몽매한 우리가 데이터 시각화에 사용하는 라이브러리는 'matplotlib'이다.

 

matplotlib은 파이썬에서 2D형태의 그래프, 이미지를 그릴 때 사용하는 것으로, 실제 과학 컴퓨팅 분야나 인공지능 분야에서 많이 사용된다고 한다.

 

matplotlib 라이브러리에 대해 궁금하다면 이쪽으로 가보자 https://matplotlib.org
 

 

여기서는 pyplot(플롯차트를 주로 그리는 모듈)이라는 matplotlib 내 모듈을 주로 사용할 예정이다. 

 

먼저 그래프를 그려보자

import matplotlib.pyplot as plt #matplotlib의 pyplot 불러오기
plt.plot([10, 20, 30, 40]) #plot 함수에 데이터 입력 #plot()함수에 입력된 리스트는 y축 값이다.
plt.show() #pyplot차트 출력하기

결과값

아름다운 정비례

 

이 코드를 잘 보면 plt.plot()에 있는 리스트가 y축 값을 결정한다. 

그럼 x축은? 현재는 자동으로 결정되어 있지만 두 번째 리스트를 작성하면 첫 번째 리스트가 x축 값, 두 번째 리스타가 y축 값이 된다.

plt.plot([1, 2, 3, 4], [12, 43, 25, 15]) #두 리스트를 입력할 땐, 첫 번째 리스트는 x축, 두 번째 리스트는 y축 값이다.
plt.show()

결과값

포트리스 전에 있던 탱크게임이 생각난다

즉, 첫 번째 리스트는 그래프의 입력값(x축)을, 두 번째 리스트는 그래프의 출력값(y축)을 나타낸다. 그러나 리스트가 하나만 있을 때는 출력값만 정해진다.

 

이렇게 그래프의 값을 결정해서 콘솔 위에 그려줄 수 있다. 하지만 그래프는 보기 좋아야 하는 법.

 

그래프를 꾸며주는 방법에 대해 간단히 알아보자

 

1. 그래프 제목 적기 plt.title()

plt.title('plotting') #타이틀(제목) 적기
plt.plot([10, 20, 30, 40])
plt.show()

결과값

플러팅 아니고

 

말그대로 그래프에 제목을 넣는 것!

 

2. 그래프 범례 넣기 plt.legend()

plt.title('legend') 
plt.plot([10, 20, 30, 40], label='asc') #증가 형태로, 라벨은 asc로 표시
plt.plot([40, 30, 20, 10], label='desc') #감소 형태로, 라벨은 desc로 표시
plt.legend() #범례 표시하기
plt.show()

결과값

범례(legend)는 전설(legend)이다

 

범례는

'책의 첫머리에 그 책의 내용이나 쓰는 방법 따위에 관한 참고 사항을 설명한 글'

이라고 네이버 사전에 쓰여져있는데, 간단히 말하면 두 개 이상의 데이터를 표시할 때 무엇이 어떤 색깔이나 시각표시로 쓰였는지 표기하는 것이다. label='범례이름' 형태로 해당데이터에 라벨링을 한 뒤, plt.legend()로 표기해준다.

범례 위치는 자동 결정되지만, 직접 지정도 가능하다.

location에 해당하는 loc을 지정해주는데 1~10까지의 숫자로 위치 지정이 가능하다. 물론 자동이 최고다.

ex) plt.legend(loc = 5)

 

3. 그래프 색상 바꾸기

plt.title('color') 
plt.plot([10, 20, 30, 40], label='skyblue', color='skyblue') 
plt.plot([40, 30, 20, 10], label='pink', color='pink') 
plt.legend()
plt.show()

결과값

파스텔톤?

 

그래프 색상이 맘에 안든다면 바꿀 수도 있다. color 속성만 추가해주면 되는데 생략하면 앞선 값과 같이 자동으로 설정된다.

또한 색상을 표현할 때, 기본적인 색에 대해서는 다음과 같이 약자로 표기할 수도 있다.

ex) r = red, g = green, b = blue, k = black, y = yellow

 

4. 그래프 선 모양 바꾸기

plt.title('linestyle')  #제목 설정
plt.plot([10, 20, 30, 40], linestyle='--',label='dashed', color='r') #dashed 그래프 그리기 '--'
plt.plot([40, 30, 20, 10], linestyle=':',label='dotted', color='g') #dotted 그래프 그리기 ':' 
plt.legend()
plt.show()

 

결과값

눈이 침침해서 그런지 거기서 거기같다

 

그래프 선 모양을 바꾸는 방법도 있다. 그래프 선 모양이 점선인지 실선인지 등에 대한 설정을 결정하는 것이다. 기본은 당연히 '직선'. linestyle='선모양'형태로 사용하며 ls라고 적어도 무방하다. 아니 이걸로 쓰자. 

참고로 색과 선 모양을 한번에 적는 형태로 작성도 가능하다. <색>,<선 모양>

ex) plt.plot([1,2,3,4],'r--')

 

 

 

5. 마커 모양 바꾸기

마지막으로 마커 모양을 바꾸는 걸 배워보자

plt.title('marker')
plt.plot([10, 20, 30, 40], label='circle', color='r', marker='.') #원형마커 그래프
plt.plot([40, 30, 20, 10], label='triangle up', color='g', marker='^') #삼각형 마커 그래프
plt.legend()
plt.show()

결과값

국기도 그려볼 수 있겠다

 

 

plot() 함수에 marker 속성을 설정하면 선이 아닌 여러 형태(점, 동그라미, 삼각형, 별모양 등)로 그래프를 그릴 수 있다.

.은 점모양 ^는 삼각형이다.

참고로 색과 선 모양과 마커 모양을을 한번에 적는 형태로 작성도 가능하다. <색>,<마커모양>,<선 모양>

ex) plt.plot([1,2,3,4],'r.--')

 

 

 

이번에 배운 명령어 셋

as: 정의하기, 주로 임포트한 라이브러리 이름을 쉽게 적기위해 별명(alias)을 정의해 사용한다. 

 
matplotlib의 pyplot 모듈 명령어

plt.title(): 그래프 제목적기

plt.plot(): 그래프 내 데이터 기입, 라벨링 할 때는 label='라벨 이름', 색상 설정은 color='색 이름', marker='마커 모양'

plt.show(): 그래프 출력하기 

plt.legend(): 그래프에 범례 추가