엑셀 차트 필요 없다! 파이썬으로 1초 만에 그래프 그리고 엑셀에 자동 삽입하기
데이터를 깔끔하게 다듬고 피벗 테이블로 요약까지 마쳤다면, 이제 방점을 찍을 차례입니다. 숫자가 빼곡한 표만으로는 팀장님의 마음을 사로잡을 수 없습니다. 직관적으로 한눈에 들어오는 '그래프(차트)'가 반드시 필요하죠.
엑셀에서 차트를 그리려면 데이터 범위를 드래그하고, 삽입 탭에 가서 차트 종류를 고르고, 축 제목을 바꾸고, 색상을 변경하는 등 마우스 클릭을 수십 번 해야 합니다. 매달 데이터가 바뀔 때마다 이 작업을 반복하는 것은 엄청난 스트레스입니다. 하지만 파이썬에서는 표에 있는 숫자를 그래프로 바꾸고, 심지어 엑셀 파일 안에 예쁘게 배치하는 것까지 단 몇 줄의 코드로 완벽하게 자동화할 수 있습니다.
1. 표를 1초 만에 그림으로: df.plot()
파이썬 판다스(Pandas)에는 데이터 프레임(표)을 즉시 그래프로 바꿔주는 아주 편리한 plot() 기능이 내장되어 있습니다. 13편에서 만든 부서별 매출액 피벗 테이블(pivot_df)이 있다고 가정해 봅시다. 이 표를 막대그래프로 보고 싶다면 어떻게 할까요?
pivot_df.plot(kind='bar')
놀랍게도 이게 끝입니다. kind='bar'는 막대그래프, kind='line'은 꺾은선그래프를 의미합니다. 이 코드 한 줄이면 파이썬이 표의 행과 열을 알아서 분석해 X축과 Y축을 설정하고 알록달록한 그래프를 화면에 띄워줍니다.
2. 실무자 필수 팁: 한글 깨짐 방지 폰트 설정
여기서 한국인 실무자들이 100% 마주치는 에러가 있습니다. 파이썬 그래프의 기본 폰트는 영어 전용이라서, 부서명 같은 한글 데이터가 전부 네모 박스(ㅁㅁㅁ)로 깨져서 나옵니다. 이때는 당황하지 마시고 코드 맨 위에 '맑은 고딕' 폰트를 사용하겠다는 마법의 주문 두 줄을 추가해 주세요.
import matplotlib.pyplot as plt
plt.rc('font', family='Malgun Gothic') # 윈도우 한글 폰트 설정
이제 그래프가 완벽한 한글로 나타납니다. 화면에 뜬 이 예쁜 그래프를 컴퓨터에 이미지 파일로 저장하려면 plt.savefig('매출차트.png') 라고 적어주기만 하면 됩니다.
3. 엑셀 파일 안에 그래프 이미지 쏙 집어넣기
이제 대망의 마지막 단계입니다. 표 데이터와 방금 저장한 '매출차트.png'를 하나의 엑셀 파일로 합쳐보겠습니다. 11편에서 배웠던 ExcelWriter 바인더를 다시 꺼냅니다. 이번에는 xlsxwriter라는 엑셀 조작 전용 엔진을 달아줄 것입니다.
# 1. 엑셀 바인더 열기
writer = pd.ExcelWriter('최종보고서.xlsx', engine='xlsxwriter')
# 2. 피벗 테이블 데이터를 '요약' 시트에 쓰기
pivot_df.to_excel(writer, sheet_name='요약')
# 3. '요약' 시트에 접근해서 E2 셀 위치에 그래프 이미지 넣기
worksheet = writer.sheets['요약']
worksheet.insert_image('E2', '매출차트.png')
# 4. 바인더 닫고 저장하기
writer.close()
코드를 실행하고 '최종보고서.xlsx'를 열어보세요! 왼쪽에는 깔끔하게 요약된 피벗 테이블이 있고, 오른쪽 E2 셀부터는 팀장님이 좋아하실 완벽한 막대그래프가 예쁘게 안착해 있을 것입니다.
기획은 사람이, 반복 작업은 파이썬이
원본 데이터를 불러와서, 쓰레기 값을 지우고, 피벗으로 요약한 뒤, 차트를 그려서 엑셀로 저장하기까지. 지금까지 우리가 14편에 걸쳐 배운 이 흐름이 바로 데이터 자동화의 완벽한 1사이클입니다. 이제 여러분의 마우스는 엑셀 차트의 테두리를 맞추느라 고생할 필요가 없습니다. 여러분은 '어떤 데이터를 보여줄 것인가'에 대한 기획만 하세요. 그리는 것은 파이썬이 1초 만에 해낼 테니까요.
▶ 핵심 요약
- 판다스의
df.plot(kind='bar')기능을 사용하면 엑셀의 복잡한 마우스 조작 없이도 표 데이터를 1초 만에 차트로 변환할 수 있습니다. - 한글이 깨지는 현상을 막기 위해
plt.rc('font', family='Malgun Gothic')설정을 반드시 추가해야 하며,savefig()로 이미지를 저장합니다. ExcelWriter와insert_image()함수를 결합하면 데이터 표와 차트 이미지를 하나의 엑셀 파일 안에 자동으로 보기 좋게 배치할 수 있습니다.
▶ 다음 편 예고
드디어 대장정의 마지막입니다! 다음 15편에서는 '이 모든 코드를 클릭 한 번으로 실행하는 법 (bat 파일 만들기)'을 통해, 파이썬을 모르는 동료도 더블클릭 한 번이면 자동화 보고서를 뽑아낼 수 있는 궁극의 배포 방법을 알아보겠습니다.
여러분은 엑셀로 차트를 그리실 때 '막대그래프'와 '꺾은선그래프' 중 어느 것을 더 자주 사용하시나요? 가장 디자인하기 까다로웠던 차트가 있다면 댓글로 알려주세요!
댓글
댓글 쓰기