파이 그래프 그리기 - pai geulaepeu geuligi

원형, 방사형, 막대 그래프 이미지를 쉽게 만들 수있는 그래프 생성기

Excel을 이용하지 않고 쉽게 원형 및 방사형 차트, 막대의 이미지를 제공하고 싶은 분에게 추천합니다. 조작은 간단! 데이터를 입력하여 이미지 생성 버튼을 누르면됩니다. 그래프 리뷰가 연동하고 있기 때문에 그래프를 확인하면서 그래프를 생성 할 수 있습니다. 우선 만들고 싶은 그래프를 선택합시다.

파이 그래프 그리기 - pai geulaepeu geuligi

파이 그래프 그리기 - pai geulaepeu geuligi

파이 그래프 그리기 - pai geulaepeu geuligi

각 언어 별

  • 영어 /
  • 일본어 /
  • 중국어 /
  • 한국어 /
  • 스페인어 /
  • 러시아어 /
  • 타이어 /
  • 아랍어 /
  • 힌디어 /

그래프를 이용하는데있어서 중요한 것은

  • 1. 전하고 싶은 메시지를 명확히하기
  • 2. 데이터의 크기를 나타내는에는 비교
  • 3. 어떤 형태가 가장 메시지를 표현할 수 있는가 생각

파이는 사용하지

  • 1. 크기를 비교하는 데 적합하지
  • 2. 데이터가 인접 해있어 많은 색상을 요.
  • 3. 레이블이 어수선하다.

3D 그래프는 사용하지

  • 1. 깊이로 크기가 변화
  • 2. 축선이 어디를 달리고 있을까 모른다.

제 2 축 사용하지

2 개의 데이터의 관련성을 동시에 보여 싶을 때 사용되며, 보기 합리적으로 보이지만, Y 축 눈금이 두 그래프에 속하는지 한눈에 판단하는 것은 어렵고,인지 적 부담으로 이어질 가능성이 높습니다.

키 메시지를 가장 크게 쓴다

메시지가 명확하게 전달되지 않은 상태에서 그래프를 봐 버리면, 수신 측의 멘탈 모델에 따라 그 그래프는 사기라도 해석되어 버립니다. 결과적으로 오해하거나 이해하더라도인지 부하를 낭비주는 일에 연결됩니다.

숫자는 소수점을 따라 오른쪽

가끔 숫자의 소수 자릿수가 제각각이거나, 오른쪽에되어 있지 않은 표를 볼 수 있지만, 순식간에 뇌가 보는 거절 해 버린다 같은 표가되어 버리므로주의합시다.

축 레이블은 기울이지

문자를 수평으로 기울마다 문자 인식 시간이 성장해 간다는 연구가 45 °에서 최대 52 %, 90 °에서 205 % 많은 시간이 소요되고 있습니다.

출신

  • 데이터 시각화 디자인 # 1
  • 데이터 시각화 디자인 # 2
  • 데이터 시각화 디자인 # 3

Social Share

아래 자료를 이용하여 파이 차트를 그려보겠다. 

파이 그래프 그리기 - pai geulaepeu geuligi
한국 성씨, 본관 top 30이다.

1. 파이 차트 그리기 

pie 함수에 데이터를 넣어주면 된다. 

plt.pie()

파이 그래프 그리기 - pai geulaepeu geuligi
한국 성씨, 본관 top 30 그래프다.

2. 동그란 원 그리기

plt.axis('equal') 

위 함수를 이용하면 원이 더 동그래진다. 

파이 그래프 그리기 - pai geulaepeu geuligi
음.. 동그래졌나? 비슷한거 같기도...ㅎㅎ

3. 레이블 추가하기 

파이 차트를 생성할 때, 레이블 옵션을 추가하면 된다. 

labes=[내용]

파이 그래프 그리기 - pai geulaepeu geuligi
김씨가 제일 많구나~

tmi 지만 원래는 성 옆에 한자가 있었다. 

한글과 한자를 모두 보여줄 수 있는 폰트를 못 찾아, 부득이하게 한글 성만 편집했다. 

여유가 생기면 한글, 한자 모두 보여줄 수 있는 방법이 있는지 찾아보겠다. 

4. 시작 각도 지정하기

파이 차트의 시작은 3시 방향이다. 

그런데 시작 각도를 바꿀 수 있다. 

3시 방향으로 왼쪽으로 몇 도를 이동할지 표시해 주면 된다. 

startangle=각도

파이 그래프 그리기 - pai geulaepeu geuligi
12시 방향부터 시작되었다.

5. 비율 추가하기

비율도 추가하면 데이터를 이해하는데 더 편할 것이다. 

autopct='숫자형식'

파이 그래프 그리기 - pai geulaepeu geuligi
비율이 추가 되었다. 

'%1.1f%%' 란 내용은 소수점 1자리까지만 보여주겠다는 뜻이다. 

적절히 조절하면 원하는 숫자 형식을 보여줄 수 있다. 

찐남 2022. 2. 26. 10:07

Matplotlib 라이브러리는 파이썬에서 그래프를 그릴 때,

가장 많이 사용하는 대표 라이브러리입니다.

기본이 되는 여러 그래프 중

이번 포스팅에서는 파이 차트를 실습해 볼게요.

앞선 포스팅과 마찬가지로

아래 2가지 기본적인 환경 세팅을 하겠습니다.

① matplotlib 라이브러리 사용 정의

② 그래프에서 환경설정이 가능하도록 폰트 설정

③ 한글 사용이 (-) 부호가 깨지는 현상 방지

import matplotlib.pyplot as plt   # matplotlib 라이브러리 load

## 한글 사용 가능하도독 폰트 설정
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic'  # os: window 
matplotlib.rcParams['axes.unicode_minus'] = False  # 한글 폰트 사용 시 (-) 부호 깨짐 현상 해결

이렇게 설정하면,

그래프에 한글과 (-) 부호 사용에 대한 걱정이 없어요.

실습을 위해 매우 간단한 데이터를 생성해 볼게요.

실습 데이터는 iris 붓꽃 데이터입니다.

아래 파일을 다운받으세요.

iris.csv

0.00MB

### 실습 데이터 생성

## iris data 가져오기
irisData = pd.read_csv("D:/Python_apply/iris.csv")

## 칼럼명 확인하기
irisData.columns

파이 그래프 그리기 - pai geulaepeu geuligi

## ## 붓꽃 종류별 평균 SepalLength SepalWidth PetalLength PetalWidth 구하기
df = irisData.groupby('Species').mean()

자 이제 기본 그래프부터

몇 가지 옵션을 추가하면서 그려 볼게요.

파이 차트 기본 그래프 그리기(.pie())

위의 데이터를 이용해서 가장 기본적인 파이 차트 그래프를 그려 볼게요.

## 파이차트 그리기
## 기본
plt.pie(df['SepalLength']) # SepalLength을 이루는 카테고리 비율로 그림 그리기
파이 그래프 그리기 - pai geulaepeu geuligi

라벨 및 비율 추가

기본 그래프에

라벨과 비율을 추가해 볼게요.

## 라벨 추가
plt.pie(df['SepalLength'], labels = df.index)
파이 그래프 그리기 - pai geulaepeu geuligi

## 비율 추가
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%')
파이 그래프 그리기 - pai geulaepeu geuligi

그리기 시작점 및 방향 변경

파이 그래프는 그리기의 시작점이

오후 3시 방향이에요.

이 지점을 기준으로 반 시계 방향으로

그리게 됩니다.

옵션을 통해

그리기의 시작점과 방향을

변경할 수 있어요.

## 파이 차트 그리기 시작점 변경
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', startangle = 90)
파이 그래프 그리기 - pai geulaepeu geuligi

## 파이 차트 그리기 시작점 변경(시계 방향)
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', startangle=90, counterclock=False)
파이 그래프 그리기 - pai geulaepeu geuligi

파이 조각 내기

특정 카테고리를 강조하기 위해

별도 파이 조각으로 구분할 수도 있어요.

구분하고, 추가적으로 범례를 달아볼게요.

## 파이 차트 조각 내기
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', explode = [0, 0, 0.2])
파이 그래프 그리기 - pai geulaepeu geuligi

## 범례 달기
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', explode = [0, 0, 0.2])
plt.legend(loc = (1.2, 0.25), title = '붓꽃 종류')
파이 그래프 그리기 - pai geulaepeu geuligi

explode = [0, 0, 0.2]의 의미는

세 번째 카테고리만 0.2 크기만큼 분리하겠다는 뜻입니다.

plt.legend(loc = (1.2, 0.25), title = '붓꽃 종류')의 의미는

범례의 위치를 기본 그래프 밖으로

0.2 크기만큼 보내고,

아래서 0.25 크기만큼 위로 보내겠다는 의미입니다.

파이 스타일 변경하기

파이의 색상을 변경하고,

도넛 모양으로도 변경할 수 있어요.

## 색상 변경하기
plt.pie(df['SepalLength'], 
        labels = df.index, 
        autopct = '%.1f%%',
        explode = [0.05]*3,
        colors = ['#ffadad','#ffd6a5','#fdffb6'])
파이 그래프 그리기 - pai geulaepeu geuligi

## 도넛 모양으로 변경하기 1
plt.pie(df['SepalLength'], 
         labels = df.index, 
         autopct = '%.1f%%',        
         explode = [0.05]*3,
         colors = ['#ffadad','#ffd6a5','#fdffb6'],
         wedgeprops = {'width':0.7})
파이 그래프 그리기 - pai geulaepeu geuligi

## 도넛 모양으로 변경 후 옵션 추가
plt.pie(df['SepalLength'], 
        labels = df.index, 
        autopct = '%.1f%%',        
        colors = ['#ffadad','#ffd6a5','#fdffb6'],
        wedgeprops = {'width':0.7, 'edgecolor':'w', 'linewidth' : 3})
파이 그래프 그리기 - pai geulaepeu geuligi

도넛 모양으로 변경하기 위해서

wedgeprops 옵션을 사용했어요.

(인수를 딕셔너리 형태로 받는다는 점 기억하세요.)

wedgeprops = {'width':0.7}의 의미는

도넛 모양으로 변경하되, 

파이 차트의 전체를 1로 보고

0.7의 면적만큼 도넛 모양으로 그리겠다는 걸로 이해하시면 돼요.

0.1 ~ 1까지 변경하면서 그려 보시면

바로 이해되실 거예요.

그리고, 

'edgecolor':'w', 'linewidth' : 3 옵션은

도넛 테두리 색상을 'white'로 하고,

선 두께를 3으로 표현하겠다는 뜻입니다.

세 번째 그래프를 보시면, 

explode 인수가 제외되면서, 

'linewidth' 옵션으로 동일한 효과를 낸 걸 보실 수 있을 거예요.

일정 비율 이상만 비율로 나타내기

또한 일정 비율 이상일 경우에만 비율을 나타낼 수 있습니다.

def customPct(pct) :
    return ('%.1f%%' % pct) if pct >= 30 else ''

plt.pie(df['SepalLength'], 
        labels = df.index, 
        autopct = customPct,        
        explode = [0.05]*3,
        colors = ['#ffadad','#ffd6a5','#fdffb6'],
        wedgeprops = {'width':0.7, 'edgecolor':'w', 'linewidth' : 3})

파이 그래프 그리기 - pai geulaepeu geuligi

비율을 나타내는 text 위치 조정하기

비율을 나타내는 text의 위치를 조정할 수 있어요.

plt.pie(df['SepalLength'], 
        labels = df.index, 
        autopct = "%0.1f%%",        
        explode = [0.05]*3,
        colors = ['#ffadad','#ffd6a5','#fdffb6'],
        wedgeprops = {'width':0.7, 'edgecolor':'w', 'linewidth' : 1},
        pctdistance = 0.7)
파이 그래프 그리기 - pai geulaepeu geuligi

pctdistance = 0.7의 의미는

파이 차트의 중앙으로부터 거리 비율을 나타냅니다.

0에 가까울수록 파이차트 중앙으로 모이게 되고,

1에 가까울 수록 점점 멀어지게 됩니다.