반응형
나도코딩 유튜브를 참고하여 적었습니다!
plt.plot(x,y)를 통해 꺾은선 그래프를 그렸습니다.
plt.bar(x,y)를 통해 막대그래프를 그렸습니다.
원 그래프를 그리는 실습을 진행하겠습니다.
1. 원 차트 그리기
# 원 그래프
values = [30,25,20,13,10,2]
labels = ['python','java','javascript','c','c++','etc']
plt.pie(values,labels=labels,autopct = '%.1f%%',startangle = 90, counterclock=False)
#autopct : 백분율 계산해줌
plt.show()
explode 함수를 적용하면 좀 더 강조 효과를 낼 수 있습니다.
# 원 그래프
values = [30,25,20,13,10,2]
labels = ['python','java','javascript','c','c++','etc']
explode = [0.05]*6
plt.pie(values,labels=labels,autopct = '%.1f%%',startangle = 90, counterclock=False,explode=explode)
plt.legend(loc=(1.2,0.3))
#autopct : 백분율 계산해줌
plt.show()
2. 도넛 차트 그리기, wedgeprops 응용
#explode를 제거하면 차트 내 빈칸 없어집니다!
# 원 그래프
values = [30,25,20,13,10,2]
labels = ['python','java','javascript','c','c++','etc']
colors = ['#ffadad', '#ffd6a5', '#fdffb6', '#caffbf', '#9bf6ff', '#a0c4ff']
explode = [0.05]*6
wedgeprops = {'width' : 0.8}
plt.pie(values,labels=labels,colors = colors, autopct = '%.1f%%',startangle = 90, counterclock=False,explode=explode,wedgeprops=wedgeprops)
plt.legend(loc=(1.2,0.3))
#autopct : 백분율 계산해줌
plt.show()
values = [30,25,20,13,10,2]
labels = ['python','java','javascript','c','c++','etc']
colors = ['#ffadad', '#ffd6a5', '#fdffb6', '#caffbf', '#9bf6ff', '#a0c4ff']
wedgeprops = {'width' : 0.6,'edgecolor' :'w', 'linewidth': 5}
plt.pie(values,labels=labels,colors = colors, autopct = '%.1f%%',startangle = 90, counterclock=False,wedgeprops=wedgeprops)
plt.legend(loc=(1.2,0.3))
#autopct : 백분율 계산해줌
plt.show()
legend가 이쁘지 않게 나오기 때문에 wedgeprops의 테두리 선을 조정하여 같은 효과를 낼 수 있습니다.
values = [30,25,20,13,10,2]
labels = ['python','java','javascript','c','c++','etc']
colors = ['#ffadad', '#ffd6a5', '#fdffb6', '#caffbf', '#9bf6ff', '#a0c4ff']
wedgeprops = {'width' : 0.6,'edgecolor' :'w', 'linewidth': 5}
plt.pie(values,labels=labels,colors = colors, autopct = '%.1f%%',startangle = 90, counterclock=False,wedgeprops=wedgeprops)
plt.legend(loc=(1.2,0.3))
#autopct : 백분율 계산해줌
plt.show()
10% 이하의 데이터의 수치를 버리고 싶을 때
import matplotlib.pyplot as plt
import matplotlib
import pandas as pd
import numpy as np
matplotlib.rcParams['font.family'] = 'Malgun Gothic'
matplotlib.rcParams['font.size'] = 15
matplotlib.rcParams['axes.unicode_minus'] = False
def custom_autopct(pct):
return ('%.1f%%' % pct) if pct >= 10 else ''
# 원 그래프
values = [30,25,20,13,10,2]
labels = ['python','java','javascript','c','c++','etc']
colors = ['#ffadad', '#ffd6a5', '#fdffb6', '#caffbf', '#9bf6ff', '#a0c4ff']
wedgeprops = {'width' : 0.6,'edgecolor' :'w', 'linewidth': 5}
plt.pie(values,labels=labels,colors = colors, autopct = custom_autopct,startangle = 90, counterclock=False,wedgeprops=wedgeprops,pctdistance=0.7)
plt.legend(loc=(1.2,0.3))
#autopct : 백분율 계산해줌
plt.show()
3. DataFrame을 원차트로 응용해 보겠습니다.
import matplotlib.pyplot as plt
import matplotlib
import pandas as pd
import numpy as np
matplotlib.rcParams['font.family'] = 'Malgun Gothic'
matplotlib.rcParams['font.size'] = 15
matplotlib.rcParams['axes.unicode_minus'] = False
df = pd.read_excel('score.xlsx')
grp = df.groupby('학교')
values = [grp.size()['북산고'],grp.size()['능남고']]
labels = ['북산고','능남고']
plt.pie(values,labels=labels,startangle = 90, counterclock=False,pctdistance=0.7)
plt.legend(loc=(1.2,0.3))
#autopct : 백분율 계산해줌
plt.show()
'파이썬 > 파이썬 시각화' 카테고리의 다른 글
Matplotlib) 데이터 시각화 8편, 여러가지 그래프 그리기 (0) | 2023.01.17 |
---|---|
Matplotlib) 데이터 시각화 7편, 산점도 그래프 (0) | 2023.01.17 |
Matploblib) 데이터 시각화 5편, 누적 막대그래프, 다중 막대그래프 (0) | 2023.01.17 |
Matploblib) 데이터 시각화 4편, 엑셀 값을 가져와서 그래프 그리기 (0) | 2023.01.17 |
Matploblib) 데이터 시각화 3편, 막대 그래프(bar 이용하기) (0) | 2023.01.17 |
댓글