[주요 함수]
더보기
revenue_fin.isna().sum() : 결측값 확인
def format_to_billion ( ) : matplotlib에서 축 눈금을 사용자가 원하는 형태(예: 억 단위)로 바꾸기 위해 만든 포맷 함수
plt.gca( ) : 현재 그리는 그래프의 '축' 정보를 가져오는 함수
plt. text ( ): 그래프 내 텍스트 입력을 위한 함수
[1] 라이브러리 불러오기
import pandas as pd
import matplotlib.pyplot as plt
[2] 파일 불러오기
revenue= pd.read_excel(r"파일경로")
revenue_t=revenue.transpose() #행열 전환
revenue_t
<결과>
[3] 데이터 정리
revenue_t.columns =revenue_t.iloc[0] #첫 행을 열 이름으로 지정
revenue_final =revenue_t.drop(revenue_t.index[0]) #첫 행 삭제
revenue_fin =revenue_final.drop(revenue_final.index[0]) #첫 행 삭제
revenue_fin
<결과>
[4] 결측치 확인
revenue_fin.isna().sum()
[5] 전산업 열 추출
all_industries=revenue_fin[['전산업']]
all_industries
<결과>
[6] 연도별 전산업 시각화
years= all_industries.index
plt.rcParams['font.family'] = 'Malgun Gothic' #글꼴 설정
def format_to_billion(y, _):
return f'{y / 10000:.0f}억' #y축 값 단위 설정
plt.figure(figsize = (25,15)) # 그래프 사이즈
plt.title('전산업 매출액',fontsize=25) # 제목 및 글자 사이즈
plt.plot(all_industries.index,all_industries['전산업']) # x축 값, y축 값 설정
plt.grid(True, linestyle='--',alpha=0.7) # 격자 유무 및 디자인(--), 크기 설정
plt.xlabel('연도', fontsize=15) # x축 값 지정
plt.ylabel('매출액(억 원)', fontsize=15) # y축 값 지정
plt.xticks(years,fontsize=15) #눈금 사이즈
plt.yticks(fontsize=15)
plt.gca().yaxis.set_major_formatter(format_to_billion)
plt.show()
<결과>
[7] 연도별 각 산업 시각화
year2=revenue_fin.index
other_industries = revenue_fin[['농업', '어업', '광업', '제조업', '비제조업', '전기, 가스, 증기 및 공기조절 공급업', '건설업',
'서비스업', '하수 · 폐기물 처리, 원료재생업', '도매 및 소매업', '운수 및 창고업', '숙박 및 음식점업',
'정보통신업', '부동산업', '전문, 과학 및 기술 서비스업', '사업시설관리 및 사업지원 및 임대서비스업',
'교육 서비스업', '예술, 스포츠 및 여가관련 서비스업', '개인 및 소비용품 수리업', '기타 개인 서비스업',
'제조업 중화학공업', '제조업 경공업', '정보통신기술산업']]
plt.rcParams['font.family'] = 'Malgun Gothic'
def format_to_billion(y, _):
return f'{y / 10000:.0f}억'
plt.figure(figsize = (25,15))
plt.title('산업별 매출액',fontsize=25)
plt.plot(other_industries)
plt.grid(True, linestyle='--',alpha=0.7)
plt.xlabel('연도', fontsize=15)
plt.ylabel('매출액(억 원)', fontsize=15)
plt.legend(other_industries.columns.values, loc='center left',bbox_to_anchor=(1, 0.5),fontsize=10) #범례설정
plt.xticks(year2,fontsize=15)
plt.yticks(fontsize=15)
plt.gca().yaxis.set_major_formatter(format_to_billion)
- def format_to_billion( ): matplotlib에서 축 눈금(y축 값)을 사용자가 원하는 형태(예: 억 단위)로 바꾸기 위해 만든 포맷 함수
- y: y축 눈금 값 (자동으로 넘겨짐, 예: 100000, 250000 등)
- _: 불필요한 두 번째 인자 (matplotlib이 자동으로 넘김, 보통 x위치 정보)
- y / 10000: 만 단위로 나눔 → 즉, 억 원 단위 변환
예: 500000 → 500000 / 10000 = 50 → 50억 - :.0f: 소수점 없이 정수로 출력
- f'{...}억': 뒤에 "억" 단위를 붙임
- plt.gca() : 현재 그리는 그래프의 '축' 정보를 가져옴
- .yaxis.set_major_formatter( ) : y축의 주 눈금(major ticks)의 표시 형식을 바꿈
top5 = other_industries.loc[2023].sort_values(ascending=False).head(5) #2023년도 매출액이 큰 순으로 정렬하고 상위 5개 산업 추출
#상위 5개 산업에 텍스트 표시
for col in top5.index:
x = other_industries.index[-1] #텍스트 x좌표 위치
y = other_industries.loc[x, col] #텍스트 y좌표 위치
plt.text(x+0.6 , y, f'{col}: {y+10000/ 10000:.0f}억', fontsize=18, ha='right', va='top', color='red')
- plt.text(x좌표, y좌표, 텍스트 내용, 옵션들)
- x+0.6 : 텍스트를 오른쪽에 띄워서 배치하겠다는 의미 (값 조정 가능)
- f'{col}: {y+10000/10000:.0f}억' =-> 텍스트 내용 ( 예: "서비스업: 450000억 )
- y + 10000 / 10000은 사실상 y + 1과 같고, 결과에 큰 영향 없지만 소수점 방지를 위해 넣음 =>GPT 도
- ha='right': 텍스트 오른쪽 정렬
- va='top': 텍스트 위에서 정렬
- color='red': 글자색 빨간색
plt.tight_layout()
plt.show() # 그래프 출력
<결과>
+ 각 연도 마다 텍스트 값 입력하고 싶은 경우 : zip ( ) 이용하기
- zip ( ) : 두 리스트 값을 짝 지어주는 함수
- plt.text()는 그래프가 그려진 뒤에 텍스트를 얹는 함수 plt.figure 이후에 실행
for x,y in zip(energy['연도'].values, energy['투자액(억원)'].values):
plt.text(x,y+5,f'{int(y)}억',ha='center',va='bottom',fontsize=17, color='red',fontweight='bold')
'Python' 카테고리의 다른 글
Python : pivot(피벗) 및 결과 그래프 한 눈에 보기 (0) | 2025.06.15 |
---|---|
Python: 데이터 매핑 및 시각화 (0) | 2025.06.14 |
Python: 웹 크롤링 (2) | 2025.06.14 |
2. 중앙값 구하기 , 최빈값 구하기 , 홀수만 출력하기 (Python) (0) | 2024.10.23 |
1. 두 수 몫 구하기, 두 수의 나눗셈 , 숫자 비교하기, 분수 덧셈, 배열 2배 만들기 (Python) (0) | 2024.10.22 |