코딩하는 해맑은 거북이
[데이터시각화] Pie Charts 본문
본 게시물의 내용은 '부스트캠프 AI Tech - Data Visualization(안수빈)' 강의를 듣고 작성하였다.
해당 글은 아래의 2가지를 다룬다.
🍀 Pie Chart
🍀 Pie Chart 응용
🟡 Donut Chart
🟡 Sunburst Chart
- 원을 부채꼴로 분할하여 표현하는 통계 차트
→ 전체를 백분위로 나타낼 때 유용
- 가장 많이 사용하는 차트지만, 구체적인 비교가 어렵고 유용성이 떨어지기 때문에 지양한다.
→ 오히려 bar plot이 더 유용 (각도 <<< 길이)
→ 사용을 꼭 하고 싶다면 함께 사용할 것을 권장
→ waffle chart가 비교에 더 유용하다
- pie() : pie chart 생성
labels = ['A', 'B', 'C', 'D']
data = np.array([60, 90, 45, 165]) # total 360
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
ax.pie(data, labels=labels)
plt.show()
- startangle : 시작 각도 설정
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
ax.pie(data, labels=labels,
startangle=90)
plt.show()
- explode : 원하는 부분을 피자조각처럼 떼어내서 강조역할을 할 수 있다
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
explode = [0, 0, 0.2, 0] # 원하는 부분에 피자조각처럼 떼어내서 강조
ax.pie(data, labels=labels, explode=explode, startangle=90)
plt.show()
- shadow : 그림자
- autopct : 부채꼴 안에 값을 나타낼 숫자의 형식을 지정한다 '%.1f%%'은 소수점 첫째자리 까지 보여줌
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
explode = [0, 0, 0.2, 0]
ax.pie(data, labels=labels, explode=explode, startangle=90,
shadow=True, autopct='%1.1f%%') # 값을 퍼센트로 보여줌
plt.show()
- labeldistance : label을 pie chart에서 얼만큼 거리를 둬서 나타낼지 설정
- rotatelabels : label을 중심점을 기준으로 각도를 회전해서 보여준다
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
explode = [0, 0, 0.2, 0]
ax.pie(data, labels=labels, explode=explode, startangle=90,
shadow=True, autopct='%1.1f%%', labeldistance=1.15 # label을 파이차트에서 띄어줌
,rotatelabels=90 # label을 중심점을 기준으로 각도회전
)
plt.show()
- pctdistance : 원의 공간에서 몇퍼센트 떨어진 공간에 label을 둘지 설정
- textprops : text의 색이나 크기 등 설정
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
explode = [0, 0, 0.2, 0]
ax.pie(data, labels=labels, explode=explode, startangle=90,
shadow=True, autopct='%1.1f%%', labeldistance=1.15,
pctdistance=0.85, textprops={'color':'b'})
plt.show()
- counterclock=False : 시계방향으로 그려준다
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
explode = [0, 0, 0.2, 0]
ax.pie(data, labels=labels, explode=explode, startangle=90, counterclock=False)
plt.show()
- radius : 반지름을 설정한다
fig, axes = plt.subplots(1, 3, figsize=(12, 7))
explode = [0, 0, 0.2, 0]
for size, ax in zip([1, 0.8, 0.5], axes):
ax.pie(data, labels=labels, explode=explode, startangle=90, counterclock=False,
radius=size # 반지름을 설정
)
plt.show()
- 중간이 비어있는 Pie Chart
- Plotly에서 쉽게 사용 가능
- 중간에 흰 원을 추가해서 도넛모양을 만든다.
fig, ax = plt.subplots(1, 1, figsize=(7, 7))
ax.pie(data, labels=labels, startangle=90,
shadow=True, autopct='%1.1f%%', pctdistance=0.85, textprops={'color':"w"})
# 좌표 0, 0, r=0.7, facecolor='white'
# 중간에 흰 원을 추가해서 도넛모양을 만든다.
centre_circle = plt.Circle((0,0),0.70,fc='white')
ax.add_artist(centre_circle)
plt.show()
- 햇살(sunburst)을 닮은 차트
- 계층적 데이터를 시각화하는 데 사용
- 구현 난이도에 비해 화려하다는 장점이 있지만 가독성이 떨어지므로 지양한다. 오히려 Treemap을 추천함
- Plotly로 쉽게 사용 가능
'Data Analysis & Viz' 카테고리의 다른 글
[데이터시각화] Interactive Visualization (0) | 2023.03.27 |
---|---|
[데이터시각화] Missingno, Treemap, Waffle Chart, Venn (0) | 2023.03.27 |
[데이터시각화] Polar Coordinate - Polar, Radar Plot (0) | 2023.03.27 |
[데이터시각화] Seaborn (0) | 2023.03.27 |
[데이터시각화] Grid, 선/면 추가, 테두리 설정, Setting 변경 (0) | 2023.03.22 |
Comments