ADP) 3-4. 파이썬 그래프 총정리 - 1탄: 점그래프, 선그래프, 점선그래프, 막대그래프, 누적막대그래프
파이썬 matplotlib, seaborn 패키지를 활용한 그래프 그리기
아래와 같이 파이썬으로 그래프 그리기를 5탄에 걸쳐서 총정리를 해보고자 한다. 생각보다 오래 걸렸지만, 다양한 플롯팅 패키지들과 함수들을 확인할 수 있었다.
- 시간 시각화: 점그래프, 선그래프, 점선그래프, 막대그래프, 누적막대그래프
- 분포 시각화: 파이그래프, 도넛차트, 트리맵, 모자이크 플롯, 누적 연속 그래프, 줄기잎그림, 박스 플롯/바이올린 플롯
- 관계 시각화: 스캐터 플롯(산점도), 버블차트, 히스토그램, 페어플롯
- 비교 시각화: 히트맵, 체르노프 페이스, 스타차트(거미줄차트, 방사형 차트), 평행좌표계, 다차원척도법
- 기타: 서브플롯, 두개의 Y축을 가진 그래프 그리기
시간 시각화 - 1. 점그래프, 선그래프, 점선그래프
- 시계열 데이터의 가장 특징적인 요소는 트렌드, 즉 경향성으로 장기간에 걸쳐 진행되는 변화 또는 트렌드를 추적하는데 주로 사용된다. 분절형과 연속형으로 분류할 수 있다.
- 점의 집중 정도와 배치에 따라 흐름을 파악하기 용이하다. 일반적으로 두 변수의 연관 관계를 보여줄 때 많이 쓰인다. 연속 시계열 그래프는 점그래프와 거의 같은데 점 사이를 선으로 연결한다는 점이 다르다.
from matplotlib import pyplot as plt 로 pyplot 함수를 불러온 후, plt.scatter()로 간단하게 점 그래프를 그릴 수 있다. x축 데이터를 리스트로 먼저 넣고, 그 옆에 y축 데이터를 리스트로 넣으면 된다. c는 color를 의미하고, marker로 점의 모양을 바꿀 수 있다. alpha는 점의 투명도로 0~1사이 실수를 넣으면 된다. s는 size이다. 파이썬 marker의 모양은 o, v, ^, <, >, 8, s, p, *, h, H, D, d, P, X 등이 있다.
선그래프와 점선그래프는 plt.plot()으로 그린다. 파라미터는 마찬가지로 행 데이터, 열 데이터 순으로 리스트를 입력한다. 점/선 그래프는 linestyle 지정에 따라 나뉜다. 점그래프는 linestyle='--', 선그래프는 아무것도 입력하지 않거나 linestyle='-'으로 하면 된다.
시간 시각화 - 2. 막대그래프, 누적막대그래프
값들이 뚜렷한 차이를 보이는 경우로 수치를 길이로 표현해 절대값을 갖는 막대를 배치함으로써 상대적인 차이를 한눈에 알아볼 수 있다. 누적 막대그래프는 한 구간이 몇개의 세부 항목으로 나뉘면서도 전체의 합이 의미가 있는 경우에 사용한다.
파이썬 막대그래프는 plt.bar()로 그린다. 마찬가지로 x축 데이터, y축 데이터 순서로 입력한다. x축 눈금 설정은 plt.xticks에서 한다. xticks의 파라미터는 눈금의 인덱스를 리스트로 넣고, 그 다음 그 인덱스의 값을 넣는다. rotation 파라미터로 xtick 값을 회전시킬 수 있다.
값이 정렬된 막대그래프를 그리고 싶다면 데이터를 미리 내림차순 혹은 오름차순으로 sorting을 해서 plot.bar에 적용해야 한다. x축 데이터, y축 데이터를 함수에 넣는 방법 외에도 DataFrame 객체 자체에 plot.bar를 해서 막대그래프를 그리는 방법도 있다.
누적그래프의 경우 DataFrame객체에 .plot(kind='bar', stacked=True)의 방식으로 그리는 게 쉽다. 데이터프레임 열 별로 열이름과 그 밑에 값을 행으로 넣어주면 된다.plt.text를 사용하면 그래프에 글자를 입력할 수 있다. plt.text(텍스트의 x축 위치숫자, 텍스트의 y축위치숫자, 넣을 텍스트값)의 순서대로 값을 입력하면 된다.
위와 동일한 방식인데 plot의 종류를 bar로 하지 않고 barh로 하면 horizontal한 가로 막대 그래프가 된다.
인덱스를 'country'로 지정한 데이터프레임 객체에 .plot.bar()를 하면 'county' 값들이 x축에 자동으로 입력된다. 각 'country'에 따른 'last7d'값과 'prec7d'값이 묶여서 그룹 막대그래프로 표시된다.
다음 포스팅 파이썬 그래프 총정리 2탄에서는 파이그래프, 도넛차트, 트리맵, 모자이크 플롯, 누적 연속 그래프, 줄기잎그림, 박스 플롯/바이올린 플롯을 그려본다. 링크는 다음과 같다: https://lovelydiary.tistory.com/420
윤종식, ADP 데이터 분석 전문가 (부산: (주)데이터에듀, 2021)
윤종식, ADsP 데이터 분석 준전문가 (부산: (주)데이터에듀, 2021)