ComputerLanguage_Program/PYTHON
[python] 연령 별 연봉 그래프 그리기
pbj0812
2022. 2. 24. 01:02
0. 목표
- 연령 별 연봉 그래프 그리기
1. 실습하기
1) library 호출
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus'] = False
2) 그림 그리기
- 가로축은 연령대, 세로축은 연봉, 색은 해당하는 인구수를 나타냄.
data_x = ['20대', '30대', '40대', '50대', '60세 이상']
data_y = [3000, 4500, 5000, 4700, 3400]
people = [380, 400, 350, 250, 100]
fig, ax = plt.subplots(figsize=(15, 10))
# 바 차트
ax.bar(data_x, data_y, color = colors)
ax.grid(True, axis = 'y')
ax.set_axisbelow(True)
# 칼라바
my_cmap = plt.cm.get_cmap('PuBuGn')
colors = my_cmap(data_color)
data_color = [x / max(people) for x in people]
CS = plt.contourf([people, data_color], cmap = my_cmap)
cbar = plt.colorbar(CS)
ticklabs = cbar.ax.get_yticklabels()
cbar.ax.set_yticklabels(ticklabs, fontsize=15)
cbar.set_label('인구수(만명)', rotation = 270, labelpad = 15, fontsize = 20)
# 축 제목
ax.set_ylabel('평균연봉(만원)', fontsize = 20)
ax.set_xlabel('연령대', fontsize = 20)
# tick
ax.tick_params(axis = 'x', labelsize = 15)
ax.tick_params(axis = 'y', labelsize = 15)
# 텍스트 붙이기
for i in range(len(data_y)):
ax.text(i, data_y[i] + 50, data_y[i],
verticalalignment = 'center' , horizontalalignment = 'center' , fontweight='bold', fontsize = 15)
2. 참고
- Choosing Colormaps in Matplotlib