Study history/ADP 실기 합격 기록

ADP) 3-4. 파이썬 그래프 총정리 - 2탄: 파이그래프/도넛차트, 트리맵, 모자이크플롯, 누적연속 선그래프, 줄기잎그림, 박스플롯/바이올린플롯

성실한 나무 2021. 12. 17. 12:34

분포 시각화 - 1. 파이 그래프, 도넛차트

 원 그래프는 부분과 전체, 부분과 부분 간의 비율을 알아보는데 사용되는 방법이다. 모든 조각의 합은 100%이다. 내용을 설명하기 위한 텍스트와 퍼센티지를 포함시키는 것이 좋다. 면적으로 값을 보여주고 수치를 각도로 표시한다. 도넛차트는 파이그래프와 마찬가지로 수치를 각도로 표시한다. 조각에 해당하는 수치는 조각의 면적이 아닌 도넛조각의 길이로 표시한다.

 아래는 숫자리스트를 객체로 넣고, 객체.plot.pie()로 파이 그래프를 구현하고, 괄호 안 파라미터 labels에 각 숫자값에 해당하는 범주의 이름 리스트를 파라미터로 적용하였다. plt.pie(값 리스트, labels=범주 리스트)로 표현할 수도 있다.

 pie 그래프 하나로 파라미터를 설정함으로써 파이그래프와 도넛차트를 모두 그릴 수 있다. 파이그래프와 도넛차트를 나누는 파라미터는 wedgeprops이다. wedgeprops는 파이차트에서 중간에 구멍을 얼마나 뚫을지를 나타낸다. 0~1 사이의 실수를 넣으면 된다.

파이썬 파이그래프, 도넛차트

 

분포 시각화 - 2. 트리맵

 영역 기반의 시각화로 각 사각형의 크기가 수치를 나타낸다. 한 사각형을 포함하고 있는 바깥의 영역은 그 사각형이 포함된 대분류, 내부의 사각형은 내부적인 세부 분류를 의미한다. 위계구조가 있는 데이터나 트리구조의 데이터를 표시할 때 활용할 수 있다.

 트리맵은 squarify라는 패키지를 설치한 후 import해서 사용하였다. 위계구조가 있게 설정하는 방법을 모색해 봐야할 것 같다.

파이썬 트리맵 with squarify

 

분포 시각화 - 3. 모자이크 플롯

 범주형 데이터의 빈도수 데이터로 각 빈도수의 비율을 면적으로 나타낸다.

 statsmodels 패키지의 mosaic 함수를 사용하여 그래프를 그렸다. default 데이터프레임은 두개의 범주형 변수로 이루어져있다. student인지 여부, default 여부를 확인할 수 있다.

파이썬 모자이크 플롯 with statsmodels

 해당 데이터셋을 각각 value_counts()한 .index와 .values의 값 리스트를 뽑아야 한다. index와 value는 labelizer에 적용할 llz 객체를 만드는데 사용한다. llz를 통해 index[0]에 해당하는 면적에 value[0]이라는 값이 나타나도록 설정했다. mosaic() 함수를 써서 plotting 할 때, index는 default 데이터 프레임 안에 들어 있는 두개의 열이름이다. props로 각 면적의 색상을 변경할 수 있다.

파이썬 모자이크 플롯 with statsmodels

 

분포 시각화 - 4. 누적 연속 선그래프

 몇 개의 시계열 그래프를 차곡차곡 쌓아 올려 그려 빈 공간을 채워 만든다. 누적 영역 그래프에서 한 시점의 세로 단면을 가져오면 그 시점의 분포를 볼 수 있다.

 누적연속선그래프는 plt.stackplot()으로 구현한다. 이 때 x축에 해당하는 날짜리스트, y축에 해당하는 값리스트를 입력했다. labels와 colors에는 각 데이터들의 년도값 3개와 년도를 대표하는 color값 3개가 리스트로 들어간다.

파이썬 누적 연속 선그래프 stackplot

 

분포 시각화 - 5. 줄기잎그림

 줄기잎그림도 신규 패키지를 설치했다. stemgraphic이라는 패키지의 stem_graphic이라는 함수를 사용하면 된다. 함수 안에는 데이터 리스트를 넣으면 된다.

파이썬 줄기잎그림 with stemgraphic

 

분포 시각화 - 6. 박스플롯/바이올린 플롯

 이상치 판별 및 데이터의 사분위수, 중위값, 최소값, 최대값을 확인할 수 있는 박스플롯을 그려 본다. seaborn 패키지에서 바이올린 플롯도 제공된다. 하지만 기능은 거의 유사해서 일단 박스플롯만 정리해본다.

 plt.boxplt(데이터리스트)의 방식이나 데이터프레임.boxplot()의 방식으로 그릴 수 있다. 데이터프레임 방식의 경우 축라벨이 자동으로 입력돼서 편리하다.

 파라미터를 살펴보면 notch는 True/False를 입력하고 박스플롯 가운데를 오목하게 넣을지 여부를 설정한다. labels는 축라벨을 의미한다. showfliers는 True/False를 입력하는데 이상치를 나타낼지 여부를 설정한다. medianprops는 중앙값 관련 설정이다. color와 linewidth를 설정해서 박스플롯 가운데 있는 중앙값 선의 디자인을 변경한다. capprops는 최대/최소값 선의 디자인을 설정한다. whiskerprops는 양옆으로 뻗어있는 수염선의 디자인을 설정한다. boxprops는 박스의 디자인을 변경하는데 그 중 facecolor는 박스의 색상을, edgecolor는 박스의 테두리 색상을, linewidth는 박스 테두리의 두게를 의미한다.

파이썬 박스플롯 디자인 설정

 

vert 파라미터를 False로 하면 가로 방향의 박스플롯으로 설정할 수 있다. vertical을 의미한다. whis는 whisker를 의미하는데 수염의 길이 즉, 이상치의 상한/하한값을 정하기 위한 파라미터를 IQR*1.5로 할 것인지 IQR*3으로 할 것인지를 설정할 수 있다. 일반적으로 1.5로 계산하기 때문에 default는 1.5인데 whis를 3으로 설정할 수도 있다.

파이썬 박스플롯 이상치 범위 설정

 

 

 다음 포스팅 파이썬 그래프 총정리 3탄에서는 스캐터플롯(산점도), 버블차트, 히스토그램, 페어플롯을 그려본다. 링크는 다음과 같다:  https://lovelydiary.tistory.com/421

 

ADP) 3-4. 파이썬 그래프 총정리 - 3탄: 스캐터플롯(산점도), 버블차트, 히스토그램, 페어플롯

관계 시각화 - 1. 스캐터 플롯  두 데이터 항목의 공통변이를 나타내는 2차원 도표이다. 데이터에서의 관계를 시각화 하는데 적합한 방법이다. 데이터 포인트들의 관련성 여부를 시각적으로 판

lovelydiary.tistory.com