일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- drug development
- javascript
- pandas
- scRNAseq
- js
- scRNAseq analysis
- CUT&RUN
- python matplotlib
- github
- CUTandRUN
- ngs
- ChIPseq
- julia
- cellranger
- MACS2
- single cell rnaseq
- 싱글셀 분석
- DataFrame
- HTML
- drug muggers
- single cell
- CSS
- Bioinformatics
- Git
- single cell analysis
- 비타민 C
- PYTHON
- matplotlib
- Batch effect
- EdgeR
- Today
- Total
바이오 대표
[ matplotlib #9 ] Python matplotlib.pyplot 기본 코드 한번에 정리_9 (Pie 막대그래프) 본문
[ matplotlib #9 ] Python matplotlib.pyplot 기본 코드 한번에 정리_9 (Pie 막대그래프)
바이오 대표 2022. 7. 9. 14:37
Matplotlib Pie Chart 파이차트
정리 1~ 7 에서 python matplotlib.pyplot 의 전반적인 설명과 plotting plt.plot( ), marker, line, label, grid, subplot, scatter, bars plot 에 대해서 살펴보았습니다. 이번 글에서는 해당 라이브러리로 Pie chart 파이차트 에 대한 설명합니다.
- pie chart plt.pie( )
- argument
- labels labels
- decimal autopct = '%.1f%%' 예시, 소숫점 한자리 까지 표현
- start angle startangle
- 특정범주 분리해서 보이기 explode
- legend plt.legend( )
Pie chart 파이 차트 그리기
Pie chart (파이 차트, 원 그래프)는 범주별 구성 비율을 원형으로 표현한 차트 입니다. 따라서, 파이 차트로 범주가 전체에서 어느정도 차지하는 지를 한눈에 확인 할 수 있습니다.
plt.pie(x, y)
예시)
import matplotlib.pyplot as plt
import numpy as np
y = np.array([40, 25, 20, 15]) # ratio
plt.pie(y)
plt.show()
* 파이 차트는 default 값으로 array의 뒤에서부터 x-axis (0도) 를 축으로 시작합니다. 위의 그래프를 보면 빨간색 부분 즉 15% 그리고, 20,25,40 순으로 표시됩니다.
Labels 과 비율(%) 표시하기
모든 그래프의 목적은 한눈에 정보를 파악하는데 있습니다. 따라서 해당 그래프가 무엇을 표현하는지 모르는 사람들을 위해 labels 과 필욯다면 비율까지 표시해주는 것이 좋습니다. 라벨은 argument labels 로 비율은 autopct = '%.1f%%' 로 표현가능합니다. '%.0f%%' 는 정수만, '%.1f%%' 는 소수점 첫째자리까지, '%.2f%%' 는 소수점 두째자리까지 표현합니다.
import matplotlib.pyplot as plt
import numpy as np
y = np.array([40, 25, 20, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Kiwis"]
plt.pie(y, labels=mylabels, autopct='%.0f%%')
plt.show()
plt.legend 를 이용해서 따로 label 을 보일 수 도 있습니다.
...
plt.legend(mylabels)
plt.show()
* legend argument 로 title 작성 가능합니다.
시작 위치
위에서 언급한 바와 같이 원래 시작(default 값)은 x-axis 혹은 0도 입니다. argument startangle 을 이용해 이를 변경할 수 있습니다. 파이 차트를 돌린다고 생각하면 됩니다. 이 때 차트는 반시계 방향으로 회전합니다.
...
plt.pie(y, labels=mylabels, autopct='%.0f%%', startangle = 90)
...
파이차트 응용 (explode, 그림자, 색, 모양)
Explode (특정 범주 중신에서 떨어트리기)
우리가 특정 범주에 더 관심이 있고 그것을 강조하고 싶다면, 다음과 같이 해당 범주만 분리해서 강조할 수 있습니다. 이때 argument explode = [ %, % ,,,% ] 해당 비율은 범주가 파이 차트 중심에서 벗어나는 정도 입니다. 만약 Apple이 10% 벗어나도록 표현하고 싶다면, 다음과 같이 할 수 있습니다.
import matplotlib.pyplot as plt
import numpy as np
y = np.array([40, 25, 20, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Kiwis"]
myexplode = [0.1,0,0,0]
plt.pie(y, labels=mylabels, autopct='%.0f%%', explode = myexplode)
그림자 나타내기
간단하게 argument shadow=True 로 나타낼 수 있습니다.
...
plt.pie(y, labels=mylabels, autopct='%.0f%%', explode = myexplode, shadow=True)
Plt.show()
색상 변경하기
각각의 범주 (wedge)의 색상을 변경 할 수 있습니다. array 로 원하는 색을 지정하고 colors 를 이용해 설정합니다. 이때, 다른 차트와 마찬가지로, [1] 단축어 'r,g,b,c,m,y,k,w' [2] hexa code Hexadecimal color values [3] color names 140 supported color names 를 이용 할 수 있습니다.
import matplotlib.pyplot as plt
import numpy as np
y = np.array([40, 25, 20, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Kiwis"]
myexplode = [0.05,0.05,0.05,0.05]
mycolors = ['gold', '#8fd9b6', '#d395d0', 'lightgray']
plt.pie(y, labels=mylabels, autopct='%.0f%%', explode = myexplode, colors = mycolors)
plt.show()
차트 모양 변경하기
파이 차트를 원형이 아닌 부채꼴로도 표현이 가능합니다. 이때, wedgeprops 의 width, edgecolor, linewidth 를 이용해 부채꼴의 영역 너비, 테두리 선 색상, 너비 설정 가능합니다.
예시)
import matplotlib.pyplot as plt
import numpy as np
y = np.array([40, 25, 20, 15])
mylabels = ["Apples", "Bananas", "Cherries", "Kiwis"]
mycolors = ['gold', '#8fd9b6', '#d395d0', 'lightgray']
wedgeprops={'width': 0.7, 'edgecolor': 'w', 'linewidth': 3}
plt.pie(y, labels=mylabels, autopct='%.0f%%', colors = mycolors, wedgeprops=wedgeprops)
plt.show()