파이썬 데이터 시각화 튜토리얼

데이터 시각화는 데이터를 분석하기 전 혹은 분석한 결과를 쉽게 이해할 수 있도록 시각적으로 표현하고 전달하는 과정이다. 이 과정은 그래프라는 수단을 이용해 정보를 명쾌하게 전달 받는다는 것에 중점을 둘 수 있다. 본 포스팅에서는 데이터 시각화의 방법으로 bar 그래프, scatter 그래프, Pie 차트, 히스토그램, 상자 수염 그래프를 소개하고자 한다.

기본적인 그래프 그리기와 설정 변경하기

리스트 또는 데이터 프레임의 형태로 무수히 쌓여있는 데이터를 상대방에게 명료하게 보여주기 위해서는 시각화 작업이 필요하고, 그래프를 이용하여 표현하는 방법이 주로 사용된다. 본 챕터에서는 데이터의 시각화를 위해 파이썬에서 가장 많이 쓰이는 모듈을 소개하고 기본적인 그래프를 그리는 코드에 대해 설명하고자 한다.

아래에 제시된 기초예제를 통해 그래프를 그리고 설정을 변경하는 코드에 대해 알아보자.

예제 (1)

백화점 고객들의 ‘방문빈도’에 관한 데이터를 시각적으로 표현하기 위해 bar그래프를 사용해보자.

파이썬에서 그래프를 그리기 위한 모듈은 매우 다양하다. 사용자에 따라서 개인의 기호에 맞는 모듈을 사용하는 것이 바람직하다고 할 수 있다. 본 책에서 모든 모듈을 다 설명할 수 없으므로 파이썬 사용자들 사이에서 가장 많이 쓰이고 유용한 모듈인 matplotlib을 사용하고자 한다.

matplotlib

  • python에서 데이터 시각화를 위해 가장 많이 사용하는 라이브러리
  • 2차원 그래프를 그릴 때 높은 수준의 결과물을 보장한다.
  • 사용자의 기호에 따라 그래프의 스타일, 각 축의 특성, 폰트의 특성등을 설정할 수 있다.

본 책보다 더 다양한 예제를 보고 싶다면 여기[클릭]를 방문해 보자

그래프를 그리기 전에 데이터를 불러와야 한다. 본 책에서는 백화점의 데이터를 사용하므로 데이터를 불러오자.

In [3]:

import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline


data = pd.read_csv("/Users/apple/Desktop/Ashopping.csv", engine = 'python', encoding= 'CP949')
data.head()

# as 뒤에 사용자 나름의 정의를 내리면 되는데 일반적으로 matplotlib을 대상으로는 plt라고 줄여서 사용한다.

Out[3]:

고객ID이탈여부총 매출액방문빈도1회 평균매출액할인권 사용 횟수총 할인 금액고객등급구매유형클레임접수여부음향 적절성안내 표지판 설명친절성신속성책임성정확성전문성D1D2D3
010400708017235711154451406666666001
121316840014226314223509952406653666001
23026807801814893261860451416677667001
340594660017349800151951416666656001
450137459507318830192463501206556656100

5 rows × 42 columns

%matplotlib inline
- %matplotlib inline은 주피터 환경에서 사용하는 명령어로 out section에 그래프를 출력하기 위해 사용함, 사용하지 않을 경우 plot이 출력되지 않음

데이터를 확인한 뒤 자신이 그래프로 표현할 데이터를 선택한다. 본 챕터에서 사용할 그래프는 bar 그래프 이므로 x축과 y축에 표현할 2가지 변수를 선택해야 한다.

In [111]:

plt.figure()
plt.bar(data['고객ID'], data['방문빈도']) 
plt.show()
파이썬 데이터 시각화
figure(), bar(), show()
- figure() : 그래프를 담는 그릇을 의미함. 추가적인 함수를 사용하여 경우에 따라  여러개의 그래프를 그릴 수 있음

- bar('x축 변수', 'y축 변수') : 그래프로 나타내고자 하는 변수의 이름을 입력해야 함

- show() : 코딩을 마무리 하는 함수이며, 그래프를 보여줌
예제 (1) 해설

bar plot을 통해 백화점 데이터 전체 고객 ‘방문빈도’의 대략적인 분포를 알 수 있다. 고객 다수의 방문빈도가 25회 이하이며 방문빈도가 최고치인 고객의 빈도는 약 200회를 기록한 것을 알 수 있다.

하지만 백화점 고객들의 전체 방문빈도를 하나의 그래프 안에서 막대그래프로 파악하기엔 무리가 따른다. 밑의 추가분석에서 이 문제를 해결해 보자.

예제 (1) 추가분석

그래프의 가시성을 높이기 위해 전체 데이터에서 고객ID 1~20 까지의 데이터를 추출해서 그래프를 그려보자.

In [21]:

data_cut = data[:20] # 고객 ID 1부터 20까지인 고객들을 추출
data_cut.head()

plt.figure()
plt.bar(data_cut['고객ID'], data_cut['방문빈도'])
plt.show()
파이썬 데이터 시각화

위 그래프의 경우, 고객 ID ‘1’부터 ’20’까지의 방문빈도를 알 수 있음. 고객 ID ‘8’이 가장 높은 방문빈도를 기록했다.

백화점 전체 고객들의 방문빈도를 그렸던 예제(1)과 달리 데이터의 범위를 잘게 잘라서 막대 그래프를 그리면 자신이 알고자 하는 정보에 대해 보다 정확히 알 수 있다.

여기까지 기본적인 그래프를 그리는 방법을 알아보았다. matplotlib 모듈에서는 사용자의 의도에 따라 여러가지 옵션을 설정할 수 있다. 계속해서 그래프의 세부적인 사항들을 설정하는 방법에 대해 알아 가보자.


bar 그래프의 세부 설정

그래프는 기본적으로 시각화를 위해 사용한다. 시각화를 하는 이유는 리스트 혹은 데이터 프레임으로 존재하는 데이터들을 자신 혹은 타인에게 한 눈에 알 수 있게끔 보여주기 위함이다. 위에서 제시한 방법으로 기본적인 그래프만 그리는 것은 우리가 타인에게 전달하고자 하는 정보를 명확히 전하기에는 전체적으로 미흡한 부분이 있다. 따라서 응용 예제에서는 matplotlib에서 제공하는 여러자기 옵션들을 사용하여 그래프의 세부적인 부분들을 조정해 보고자 한다.

아래의 표를 통해 설정하는 코드들을 알아보고 예제에 적용해보자.

세부 설정 코드
code세부내용
figsize = ( , )전체 도표의 크기를 조절할 수 있음</center>
width그래프의 너비를 조절함
color그래프의 색상을 조절함
alpha그래프의 투명도를 조절함
legend()변수의 범례를 나타냄
grid()도표에 모눈을 표시함
xlabel‘x’축의 이름을 명명
ylabel‘y’축의 이름을 명명
title그래프의 전체 타이틀을 명명
응용 예제 1-1

그래프를 보는 사람의 독해력을 높이기 위해 그래프의 title을 설정하고 각 축에 label을 부여한 뒤, 그래프를 조작하기 위한 세부설정 코드들을 알아보자.

In [36]:

x = data_cut['고객ID'] 
y = data_cut['방문빈도'] 
#코드 작성의 효율성을 위해 x, y 변수에 기존의 변수 할당

plt.figure(figsize = (10,4))
plt.bar(x, y, width= 1.0, color = 'r', alpha = 0.4, label = '방문빈도')
plt.legend()
plt.grid()
plt.xlabel('고객 ID')
plt.ylabel('방문빈도')
plt.title('고객 별 방문빈도')
plt.show()

# 엔코딩의 문제로 인하여 한글 출력이 제한될 경우 다음의 방법을 통해 해결한다.

from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname="/Users/apple/Downloads/12롯데마트행복Medium/12롯데마트행복Light.ttf").get_name()
rc('font', family = font_name)
파이썬 데이터 시각화



두 가지 bar 그래프 만들기

하나의 범주에 대한 2가지 특성을 비교하고자 할 때 하나의 도표에 2가지 그래프를 작성하여 비교할 수 있다. 하나의 도표에 합치지 않고 두개의 도표에 각각의 그래프를 그려 비교하는 방법도 있다. 하지만 선택한 두 범주의 스케일이 비슷할 경우 하나의 도표에 2가지 그래프를 그려 비교하는 것이 시간과 공간의 비용적인 측면에서 유리하다.

아래에 등장할 예제에서는 범주의 스케일이 비슷한 두개의 변수를 선택하여 그래프로 표현 및 비교를 진행하고자 한다.

예제 (2)

백화점 고객들의 방문빈도에 따른 할인권 사용 횟수를 비교해 보기 위해 두가지 그래프를 작성 해보자.

In [37]:

#두가지 그래프를 작성하기 위해 한가지 변수를 더 추가한다.

z = data_cut['할인권 사용 횟수']

In [39]:

plt.figure(figsize=(10,4))
plt.bar(x, y, color = 'r', label = '방문빈도')
plt.bar(x, z, color = 'g', label = '할인권사용횟수') 
plt.legend()
plt.grid()
plt.xlabel('ID')
plt.ylabel('횟수')
plt.title('고객 별 특성')
plt.show()

# plot.bar를 하나 더 작성하여 두개의 bar 그래프를 표현할 수 있다.
파이썬 데이터 시각화
예제 (2) 해설

그래프를 통해 고객들의 할인권 사용횟수의 편차가 방문빈도의 편차만큼 크지 않음을 알 수 있다.

그래프가 겹쳐 그려진 부분들은 각 변수간의 차이를 명확히 확인할 수 없으므로 아래 2-3에서 효과적으로 비교하고자 하는 방법에 대해 알아보자


축 변경해서 그래프 그리기

축을 변경하여 그래프를 그리면 비교하고자 하는 변수들을 시각적으로 더 명료하게 나타낼 수 있다. 특정 데이터나 그래프를 작성자 자신만 보는 경우라면 그래프의 가시성에 별다른 신경을 쓰지 않고 작성해도 문제가 되지 않는다. 하지만 연습을 위한 그리기를 제외한 대부분의 경우라면 그래프는 타인에게 데이터의 분포 유형이나 형상을 보여주기 위한 목적으로 작성을 한다. 따라서 독자들의 이해력을 높여주는 효율적인 그래프의 작성은 매우 중요하다.

아래의 예제를 통해 효과적으로 표현하는 방법에 대해 알아보자

예제 (3)

2-2 챕터에서 사용한 두 변수 ‘방문빈도’와 ‘할인권 사용횟수’를 한가지 도표에 표현하되 기존의 X축을 Y축으로 변경하여 그래프로 작성 해보자.

In [42]:

plt.figure(figsize = (10,4))
plt.barh(x, y, color = 'r', label = '방문빈도')
plt.barh(x, -z, color = 'g', label = '할인권사용횟수')
plt.legend()
plt.xticks([-20,0,20,40,60,80,100], ['20','0','20','40','60','80','100'])
plt.grid()
plt.xlabel('횟수')
plt.ylabel('ID')
plt.title('방문빈도와 할인권 사용횟수의 비교')
plt.show()
파이썬 데이터 시각화
plt.barh, plt.xticks
- plt.barh( ) : 음의 방향으로 표현하길 원하는 변수에 '-'를 붙이면 기존의 그래프가 만들어지던 것과 반대의 방향으로 그래프가 그려짐

- plt.xticks ([ ],['']) : x축에 명시되어 있는 scale 값을 변경할 수 있다. '왼쪽의 값을 오른쪽의 값으로 변경하겠다' 라고 이해해야 하며, x축 scale의 모든 값을 표기해야 함
예제 (3) 해설

2-2 챕터의 그래프와 달리 본 챕터의 그래프는 기존의 X축을 Y축으로 변환했다. 한가지 변수를 양의 방향으로 표현하고 나머지 변수를 음의 방향으로 그림으로 인해 한명의 고객이 가진 2가지 특징을 더욱 효과적으로 비교 및 표현했다. 예를들어 10번 고객의 경우 할인권 사용횟수는 약 30회였고 방문빈도는 약 20회 였다. 10번 고객과 방문빈도가 비슷한 고객중 3번 고객의 할인권 사용횟수는 1번 정도로 매우 낮은걸 알 수 있다.



Scatter plot (산포도)

scatter plot은 두 변수를 교착점을 점으로 표시한다. 그렇게 형성된 전체 산포도를 바탕으로 분포와 두 변수간의 관계를 파악할 수 있다. scatter plot을 그리기 위해서 2가지 변수를 먼저 선택하여 진행해야 한다. 산포도는 회귀 분석이나 상관관계 분석을 하기 전 수행한다. 데이터의 대략적인 분포를 확인한 후 두 변수간에 관계가 없는 것으로 보이면 통계적인 분석과정에서 미리 제외하여 시간의 효율성을 담보할 수 있다.

예제 (4)

Scatter plot을 작성하기 전에 관계를 알아보고자 하는 두가지 변수를 선정해야 한다. 본 교재에서는 백화점 데이터에서 100개를 샘플링하여 ‘1회 평균매출액’과 ‘고객 나이대’간의 관계를 알아보자.

In [122]:

import random
import pandas as pd
import numpy as np

rows = np.random.choice(data.index.values,100)
sampled_A = data.ix[rows]

sampled_A.count()
/Users/apple/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:6: DeprecationWarning: 
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing

See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#ix-indexer-is-deprecated
  

Out[122]:

고객ID                100
이탈여부                100
총 매출액               100
방문빈도                100
1회 평균매출액            100
할인권 사용 횟수           100
총 할인 금액             100
고객등급                100
구매유형                100
클레임접수여부             100
구매 카테고리 수           100
거주지역                100
성별                  100
고객 나이대              100
거래기간                100
할인민감여부              100
멤버쉽 프로그램 가입전 만족도    100
멤버쉽 프로그램 가입후 만족도    100
Recency             100
Frequency           100
Monetary            100
상품 만족도              100
매장 만족도              100
서비스 만족도             100
상품 품질               100
상품 다양성              100
가격 적절성              100
상품 진열 위치            100
상품 설명 표시            100
매장 청결성              100
공간 편의성              100
시야 확보성              100
음향 적절성              100
안내 표지판 설명           100
친절성                 100
신속성                 100
책임성                 100
정확성                 100
전문성                 100
D1                  100
D2                  100
D3                  100
dtype: int64
np.random.choice(수정)
- 샘플링을 하기 위해서 numpy 라이브러리의 random.choice 함수를 이용함

- rows = np.random.choice(샘플링할 데이터 셋.index.values,데이터의 개수)
: rows 변수에 샘플링한 데이터를 행들로 선택한다. 그 다음 사용자가 지정한 변수에 샘플링한 데이터를 할당함

산포도(scatter plot) 작성 전 데이터 추출

산포도를 작성하기 전 x축과 y축에 배치할 변수를 선택해야 한다. 변수를 선택한 뒤 전체 데이터에서 해당 변수만을 가져와 새로 생성한 변수에 집어 넣어서 진행하는 것이 코드의 효율성 측면에서 좋다.

아래에서 그 과정을 진행해보자

In [141]:

scatter_1회평균매출액 = sampled_A['1회 평균매출액']
scatter_고객나이대 = sampled_A['고객 나이대']

# 새로운 변수를 만들고 해당 변수에 할당할 변수들만을 기존의 데이터 셋에서 선택

일반적으로 고객의 나이대가 40~50에 접어들수록 고객의 구매력이 상승하는 것으로 알려져 있다. 이러한 기정 사실로 받아들여진 가설이 백화점 데이터에서도 적용되는지 확인해보기 위해 scatter plot을 통해 알아보자.

In [142]:

plt.figure()
plt.scatter(scatter_1회평균매출액, scatter_고객나이대) 
plt.grid()
plt.xlabel('1회 평균매출액')
plt.ylabel('고객 나이대')
plt.title('1회 평균 매출액과 고객 나이대')
plt.show()
파이썬 데이터 시각화
예제 (4) 해설

샘플링한 100개의 데이터 내에서 ‘1회평균매출액’과 ‘고객 나이대’의 scatter plot 을 그려 보았다. 제시된 산포도 그래프 만으로 두 변수간의 정확하고 명확한 관계를 알아낼 수 없지만 가시적으로 보았을 때 고객 나이대에 따른 1회 평균매출액의 차이는 유의미하지 않아 보인다.

scatter plot 의 세부 설정

위의 bar 그래프 세부 설정을 하기 전 그래프의 다양한 옵션을 설정하는 이유에 대해 언급했듯이 scatter plot에서도 그래프를 상대방에게 효과적으로 인식시키기 위해 조정하는 것은 중요하다. 따라서 아래에서는 scatter plot의 세부 설정에 대한 코드를 알아보고 예제를 통해 적용해보자.

code세부내용
colormap = ‘변수이름’양적인 정도를 색의 변화로 표현하고자 할 때 변수를 할당하여 사용
s = size(숫자)점의 크기를 의미
c = colormap위에서 지정한 colormap을 도표에 표시하기 위함
marker = > or < or default등호의 모양에 따라 도표에 표시되는 마커의 방향이 바뀜.
사용하지 않을 경우 default값으로 동그란 마커가 등장

In [136]:

colormap = scatter_1회평균매출액

plt.figure(figsize = (10,4))
plt.scatter(scatter_1회평균매출액, scatter_고객나이대, s = 50, c = colormap, marker = '>') 
plt.colorbar()
plt.grid()
plt.xlabel('1회 평균매출액')
plt.ylabel('고객 나이대')
plt.title('1회 평균매출액과 총 매출액 산포도')
plt.show()
파이썬 데이터 시각화

마커에 색을 입혀 놓아 시각적 효과를 부여 함으로써 분포 파악에 도움을 준다.



Pie 차트

Pie 차트는 데이터의 총합을 100으로 하여 데이터의 범주가 차지하는 비율을 백분율로 환산한 뒤 시각적으로 그 비율을 보여주는 차트이다. pie 차트는 각 범주가 데이터에서 차지하는 비율을 효과적으로 나타내기 위해 사용된다. 일반적으로 원에 각 범주의 비율을 그리기 때문에 원그래프라고도 한다.

예제 (5)

데이터 내에 범주와 관련된 데이터가 있다면, 범주의 카테고리 별 데이터의 비율을 알아보는 것은 데이터 전처리 과정이나 분석과정에서 필수적이라고 볼 수 있다. 이번 예제에서는 백화점 고객들이 구매 유형에 따라 어떤 비율로 구성되어 있는지 알아보기 위해 pie 차트를 이용해 표현해보자.

In [175]:

groupby_구매유형 = data.groupby('구매유형')
groupby_구매유형.describe()

#groupby : '데이터셋'.groupby('그룹핑할 변수') : 데이터 셋 내에 그룹핑할 변수를 선택하여 무리 지음

Out[175]:

1회 평균매출액D1할인권 사용 횟수할인민감여부
countmeanstdmin25%50%75%maxcountmean75%maxcountmeanstdmin25%50%75%max
구매유형
143.0350206.41860587347.322958178490.0273910.5364625.0414084.50489752.043.00.026.030.043.00.1860470.3937500.00.00.00.01.0
2317.0204790.258675102578.23819522461.0118862.0193454.0268759.00496672.0317.01.023.030.0317.00.0599370.2377450.00.00.00.01.0
3144.0736705.520833311538.495595502599.0553479.0630736.5786918.002680100.0144.00.024.030.0144.00.1180560.3238000.00.00.00.01.0
4496.0264714.028226100920.48020278284.0186106.5248438.5344615.25499499.0496.00.022.030.0496.00.0645160.2459180.00.00.00.01.0

4 rows × 312 columns

pie 차트를 그리기 전에 구매 유형에 따른 고객의 분포 수를 확인하기 위해 groupby 함수를 사용함. groupby 함수를 통해 얻은 데이터를 바탕으로 pie 차트 작성해보자. 그 전에 pie차트의 세부설정 코드들을 알아보고 진행해보자

pie 차트 세부 설정
code세부내용
labels파이 조각의 라벨. 사용자가 임의로 지정할 수 있지만
일반적으로는 해당 변수의 범주 이름에 맞춰서 지정
sizes해당 범주의 순서에 맞는 데이터를 입력해야 함
colors사용자가 원하는 색상을 입력
explodepie 차트에서 특정 부분을 강조, labels의 순서에 맞춰서 작성해야함
autopct각 범주가 데이터에서 차지하는 비율을 pie에서 보여줌
shadowpie 차트에 음영을 넣어 입체감을 줄 수 있음
plt.pie( )pie( ) 함수 안에 세부 설정과 관련된 기능들을 포함시켜야 함
plt.axis(‘equal’)차트가 원의 형태를 지속하도록 하는 명령

In [71]:

labels = ['1','2','3','4']
sizes = [43, 317, 144, 496]
colors = ['yellowgreen','gold','lightskyblue','lightcoral']
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode = explode, labels = labels, colors = colors, autopct='%1.1f%%',shadow = True, startangle = 90)
plt.axis('equal')
plt.title('구매유형에 따른 고객 분포')
plt.show

Out[71]:

<function matplotlib.pyplot.show>
파이썬 데이터 시각화
예제 (5) 해설

데이터에서 구매유형에 따른 고객 분포는 4 > 2 > 3 > 1 순으로 많았다. 각 고객 유형들의 특징을 분석하여 차후에 고객 세분화 과정에서 사용할 수 있다.



histogram

히스토그램은 도수분포표를 그림으로 표현한 것이어서 특정 변수에 대하여 각 구간별 빈도수를 그래프로 나타낸다. 따라서 단순히 표로 데이터의 분포를 확인할 때보다 히스토그램을 활용하면 더 쉽게 알아볼 수 있다. 히스토그램의 X축에는 도수분포표에서 계급상의 극단값을 양 끝에 입력해야 한다. Y축에서는 도수를 입력한다. 구간의 수에 따라 히스토그램의 모양이 달라지기 때문에 구간의 개수를 적절히 설정해야한다.

예제 (6)

샘플링한 데이터를 바탕으로 고객들이 얼마만큼의 1회 평균매출액 분포를 보이는지 알아보고자 한다. 이때 히스토그램을 사용하여 샘플링 데이터의 전체적인 분포에 대해 알아보자.

In [118]:

data_hist = sampled_A['거래기간']

#코드 작성의 효율성을 위해 'data'라는 변수에 1회 평균매출액 데이터를 집어 넣음

In [121]:

plt.figure()
plt.hist(data_hist, bins = 20, facecolor = 'red', alpha = 0.4)
plt.hist(data_hist, bins = 40, facecolor = 'green', alpha = 0.4)
plt.xlabel('거래기간')
plt.ylabel('고객 수')
plt.title('고객들의 거래기간 히스토그램')
plt.show()

#bins = 'size'(숫자) : 사용자가 지정하는 숫자를 통해 히스토그램의 구간을 나눌 수 있음
#facecolor = 'color' : 사용자가 원하는 색으로 히스토그램 변경 가능
파이썬 데이터 시각화
예제 (6) 해설

샘플링한 데이터들을 대상으로 ‘고객기간’의 분포를 알아보기 위해 히스토그램을 그렸을 때, 오른쪽으로 치우쳤음을 알 수 있다. 이 샘플링 데이터가 백화점 전체 데이터의 경향성을 보여주다고 단정할 수는 없다. 하지만 백화점과 고객들의 거래기간이 단발성에 그치는 것이 아니라 장기간에 걸쳐 형성되어 있음을 알 수 있다.



Box plot

box plot 은 대량의 데이터를 상자 수염 그림을 통해 데이터 집합의 범위와 중앙값, 이상치를 신속히 확인하기 위해 사용된다. 데이터의 중위수는 상자의 선으로 표시된다. 상자는 데이터의 중간에 위치한 50%를 나타낸다. 나머지 위 아래로 그어진 선(수염)은 데이터의 하위 25%와 상위 25%의 범위를 나타낸다. 표본 크기는 그래프의 모양에 영향을 끼치며, 일반적으로 20 이상일 때 가장 잘 작동한다.

예제 (7)

백화점 전체 고객데이터를 대상으로 ‘1회 평균매출액’의 범위와 중앙값, 이상치를 파악해보자. 그 전에 boxplot의 세부 설정을 파악해보자

box plot 세부 설정
code세부내용
plt.boxplot(‘변수이름’)원하는 변수의 boxplot을 그림
gca( )그래프 축의 속성을 얻음
setp( )객체 속성을 설정하고 가져옴
xticklabels = [‘변수명’]x축에 표현할 데이터의 카테고리를 명시

In [11]:

plt.figure()
data_box = [data['구매유형']]
plt.boxplot(data_box)
ax = plt.gca()
plt.setp(ax, xticklabels=['구매유형'])
plt.ylabel('mount')
plt.title('백화점 고객 구매유형의 상자수염도')
plt.show()
파이썬 데이터 시각화
예제 (7) 해설

백화점 고객 ‘구매유형’의 중위값이나 평균 값, 이상치의 분포 정도를 알 수 있다. 백화점 고객들의 ‘구매유형’은 1, 2, 3, 4로 나뉜다. 위의 상도수염도를 통해 백화점 고객들의 구매유형의 중위값이 3이고 상자가 2에서 4 사이에 형성된 것으로 보아 전체 고객의 절만 이상이 구매유형 2, 3, 4에 해당하고 구매유형이 1인 고객의 수는 비교적 적다는 것을 알 수 있다.

error: Content is protected !!
Scroll to Top