상세 컨텐츠

본문 제목

데이터 시각화 기초 - 그래프 종류 2

데이터분석/시각화

by 2^7 2024. 7. 24. 20:44

본문

3.  막대그래프

 데이터 시각화에서 많이 사용되는 도구로 범주형 데이터를 비교하거나 시간에 따른 변화를 시각적으로 나타낼 때 유용

각 막대는 특정 범주나 시간 구간을 나타내며, 막대의 길이는 해당 범주나 구간의 값의 크기를 나타냄

import matplotlib.pyplot as plt
plt.bar([0,1,2,4,6,10], [1,2,3,5,6,7])
plt.show()

 막대 그래프 bar()함수에는 두가지 값을 입력한다. plt.bar([막대를 표시할 위치(x값)], [막대의 높이(y값)])


 막대그래프의 위치를 오름차순으로 표현하는 경우가 많아 다음과 같이 표현 할 수 있다.

import matplotlib.pyplot as plt
plt.bar(range(6), [1,2,3,5,6,7])
plt.show()


막대그래프를 수직이 아닌 수평방형으로 그릴 수 있다.

import csv
f = open('age.csv')
data = csv.reader(f)

result = []
for row in data :
    if '신도림' in row[0] :
        for i in row[3:] :
            result.append(int(i))
            
import matplotlib.pyplot as plt       
plt.barh(range(101), result)      #bar()함수를 barh()함수로 바꾼다
plt.show()

우리동네 연령별 인구수

bar()함수를 barh()함수로 바꿔 작성하면 그래프가 수직에서 수평으로 바뀐다.


막대그래프를 수평이 아닌 수직으로 그리는 방법을 활용하여 항아리 모양의 그래프로 시각화 할 수 있다.

항아리 모양의 그래프는 주로 인구 피라미드 형태의 그래프를 표현하는데 사용되며, 특정 시점에서 연령 및 성별에 따른 인구 분포를 시각적으로 표현할 수 있다.

항아리 모양의 그래프를 그리고자 할 경우 비교하고자 하는 두 그룹의 데이터 형태가 같은 형태로 되어 있어야 그래프로 표현이 가능하다.

 

  • ex) 동네의 인구의 남녀 분포 데이터 시각화
import csv
f = open('gender.csv')
data = csv.reader(f)
 
m = []
f = []
 
name = input('찾고 싶은 지역의 이름을 알려주세요 : ')
for row in data :
    if name in row[0] :
        for i in row[3:104] :
            m.append(-int(i))            #남성의 데이터 값을 음수로 바꿔 저장한다.
        for i in row[106:] :
            f.append(int(i))

import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.figure(figsize = (10,5), dpi=300)
plt.rc('font', family = 'Malgun Gothic')
plt.rcParams['axes.unicode_minus'] = False
plt.title(name + ' 지역의 남녀 성별 인구 분포')
plt.barh(range(101), m, label = '남성')
plt.barh(range(101), f, label = '여성')
plt.legend()
plt.show()


4. 파이차트

 원그래프라고 불리는 파이 차트는 전체 데이터 중 특정 데이터의 비율을 보기 쉽게 표현 할 수 있다.

데이터 시각화에서 범주형 데이터의 비율을 쉽게 비교 할 수 있으며 여러 조각으로 나누어 각 조각이 전체에서 차지하는 비율을 나타낸다.

파이차트는 직관적이고 이해하기 쉽기 때문에 누구나 쉽게 이해할 수 있으며 특정 범주가 얼마나 큰 비중을 차지하는지 한눈에 알 수 있게 해주지만, 작은 차이를 구별하기 쉽지 않아 비율이 비슷한 여러 범주를 비교하거나, 데이터 항목이 많을 경우 가독성이 떨어지는 문제가 발생하여 사용하기에 적합하지 않을 수 있다.

import matplotlib.pyplot as plt
plt.pie([10,20])
plt.show()


   파이차트의 옵션을 적용(레이블, 비율, 범례) 하여 그래프를 좀 더 쉽게 이해 할 수 있도록 할 수 있으며 특정 부분을 강조하기 위해 돌출되도록 하거나 각 속성을 구분하기 위한 색상을 지정할 수 도 있다.

import matplotlib.pyplot as plt
plt.rc('font', family = 'Malgun Gothic')            # 그래프에 한글 표시
size = [2441, 2312, 1031, 1233]
label = ['A형','B형','AB형', 'O형']                 # 레이블
plt.pie(size, labels = label, autopct = '%.1f%%')   # 비율 및 범례 추가
plt.legend()
plt.show()


 

import matplotlib.pyplot as plt
plt.rc('font', family = 'Malgun Gothic')
size = [2441, 2312, 1031, 1233]
label = ['A형','B형','AB형', 'O형']
color = ['darkmagenta', 'deeppink', 'hotpink', 'pink']    #각 label별 색상을 원하는 색으로 지정
plt.axis('equal')
plt.pie(size, labels = label, autopct = '%.1f%%', explode = (0,0,0.1,0), colors = color)  
                                                # explode속성을 이용 원하는 부분의 값만 돌출 되도록 할 수 있다.
plt.legend()
plt.show()


matplotlib라이브러리에서는 아래와 같이 다양한 색을 제공하고 있으며 해당 색상명을 확인하여 그래프에 이용할 수 있다. 참조

 

참고 서적 : 모두의 데이터분석 with파이썬
728x90

관련글 더보기