프로그래밍/Pandas

[Pandas] 데이터 시각화 | Matplotlib | 파이차트 | 박스그래프

LeeSeunghyuk 2021. 2. 4. 11:27
반응형

안녕하세요!

 

오늘은 Matplotlib 모듈을 사용한 시각화 마지막 시간입니다.

파이차트와 박스그래프를 사용해 데이터를 시각화 해보도록 하겠습니다.

 

# 파이 차트(Pie chart)

 

 

흔히 생각하는 파이(Pie)라는 빵 종류의 모양을 띈 그래프입니다.

파이의 각 크기는 해당 변수가 차지하는 비율로 나타납니다.

 

실제 데이터의 양이나 개수가 아닌, 전체 데이터를 100으로 보았을 때

백분율을 사용하여 데이터를 나타냅니다.

 

데이터의 종류가 너무 많거나, 적은 비율을 차지하는 데이터가 많은경우

시각화를 해도 정확하게 확인하기 힘들 수 있습니다.

 

import matplotlib.pyplot as plt
import csv

f=open('d:\\판다스 실습\\emp2.csv','r')
job=[]
data=f.readline()

while data:
    data=f.readline()
    if not data:
        break
    job.append(data.split(',')[2])

jobname=list(set(job))
cnt=[job.count(i) for i in jobname]

print('jobname:',jobname)
print('cnt:',cnt)
   
plt.pie(cnt,labels=jobname,autopct='%.1f%%')
plt.show()

 

matplotlib.pyplot.pie(plt.pie) 함수의 변수로 각 데이터별 크기(직업의 수)를 주었습니다.

각 데이터별 이름은 labels = 옵션에 jobname을 통해 전달해 주고,

autopct 옵션을 사용해서 자동으로 해당하는 크기의 차지 비율을 나타내게 했습니다.

.1f 라는 뜻은 소수점 1자리를 나타낸다는 것입니다.

 

위의 데이터는 csv파일을 문서 그대로 읽어서 데이터를 처리하는 과정이 복잡합니다.

판다스를 사용해서 데이터를 데이터 프레임으로 만들어서

훨씬 더 쉽게 파이 그래프를 사용할 수 있습니다.

 

2021/01/06 - [프로그래밍/Pandas] - [Pandas] 데이터 시각화 | 판다스 내장 그래프

 

[Pandas] 데이터 시각화 | 판다스 내장 그래프

안녕하세요 이승혁입니다. 오늘은 판다스의 내장 그래프를 이용해 데이터를 시각화 하겠습니다. 데이터를 분석해보면서 시각화가 정말 중요하단 것을 느꼈습니다. 내가 이해하기에도, 남을 이

lsh-story.tistory.com

 

# 박스 그래프(Box plot)

 

박스 그래프는 데이터의 분포와 이상치를 확인할 때 많이 사용합니다.

데이터의 하한값, 상한값, 중앙값과 같은 수치를 나타내며 쉽게 이상치를 판단할 수 있습니다.

 

 

< 이상치 기준 >

 

Q1 : 하한 사분위수 , 25%

Q2 : 중앙값 , 50 %

Q3 : 상한 사분위수 , 75%

IRQ = Q3 - Q1

 

상단 이상치 > Q3 + 1.5 * IRQ

하단 이상치 < Q1  - 1.5 * IRQ



import matplotlib.pyplot as plt
import seaborn as sns
iris=sns.load_dataset('iris')

setosa=iris[iris['species']=='setosa']['sepal_length']
virginica=iris[iris['species']=='virginica']['sepal_length']
versicolor=iris[iris['species']=='versicolor']['sepal_length']

data=[setosa,virginica,versicolor]
name=['setosa','virginica','versicolor']

plt.boxplot(data,labels=name)
plt.show()

 

앞으로 예시 데이터로 자주 사용할 seaborn의 iris 꽃 데이터 입니다.

setosa, virginica, vesicolor 세 가지 종류로 구성되며

sepal legnth(꽃받침 길이) 데이터를 가지고 확인해 보았습니다.

 

 

setosa  :   최소 4.2 ~ 최대 5.8의 길이를 가집니다.

              대부분의 데이터(50%)가 4.7 ~ 5.2의 길이를 가집니다.

              이상치는 없습니다.

 

virginica : 최소 5.5 ~ 최대 8.0의 길이를 가집니다.

             대부분의 데이터(50%)가 6.2 ~ 6.8 정도의 길이를 가집니다.

             4.7정도의 길이를 가진 이상치 데이터 1개 존재합니다.

 

versicolor : 최소 5.0 ~ 최대 7.0의 길이를 가집니다.

               대부분의 데이터가(50%) 5.5 ~ 6.4 정도의 길이를 가집니다.

               이상치는 없습니다.

 

꽃받침의 길이만으로는 세 종류를 확실하게 분류하기 조금 애매한 것 같습니다.

 

데이터가 판다스 데이터 프레임 형식으로 잘 되어있다면,판다스 내장 그래프를 사용하는 것이 시각화하는데 좀 더 편하다고 생각합니다.

 

하지만 데이터는 정말 다양한 형태로 수집되기 때문에

여러가지 방법으로 시각화하는 연습을 하는게 좋을 것 같습니다!!

 

다음 시간에는 seaborn 라이브러리를 좀 더 활용해

고급 그래프 도구를 사용해 보도록 하겠습니다!!

 

읽어주셔서 감사합니다.

 

 

 

 

반응형