엑셀 차트로 충분하다고 생각하셨나요
매출 추이를 보여주는 막대그래프, 부서별 비중을 나타내는 원그래프. 엑셀에서 몇 번의 클릭만으로 만들 수 있는 이 차트들은 분명 유용합니다. 하지만 업무를 하다 보면 이런 순간이 옵니다.
- 매주 같은 형태의 보고서를 만드는데 데이터만 바뀌고 차트 스타일은 매번 새로 설정해야 할 때
- 여러 개의 엑셀 파일에서 데이터를 모아 하나의 그래프로 비교해야 할 때
- 수백 개의 항목을 한눈에 보여줄 그래프가 필요한데 엑셀에서는 지저분하게만 보일 때
- 특정 조건(예: 이상치, 특정 기간)을 강조한 시각화가 필요할 때
이럴 때 파이썬 시각화 라이브러리를 알고 있으면 작업 속도와 결과물의 품질이 크게 달라집니다. 오늘은 비전공자, 특히 엑셀은 익숙하지만 코드는 처음인 분들을 위해 파이썬 데이터 시각화의 첫걸음을 정리해 보겠습니다.
왜 굳이 코드로 그래프를 그려야 할까요
가장 큰 차이는 재현성과 자동화입니다. 엑셀에서 차트를 만들면 그 결과물은 해당 파일, 해당 순간에만 존재합니다. 다음 달에 같은 보고서를 만들려면 다시 클릭하고 서식을 맞춰야 합니다.
반면 파이썬으로 그래프를 그리는 코드를 한 번 작성해두면, 데이터만 바뀌어도 동일한 스타일의 그래프가 몇 초 만에 다시 생성됩니다. 이미 여러 엑셀 파일을 취합하는 자동화를 파이썬으로 처리하고 계신다면, 그 뒤에 시각화 코드를 이어 붙이는 것만으로 데이터 취합부터 보고서용 그래프 생성까지 하나의 흐름으로 완성할 수 있습니다.
첫 번째 도구: matplotlib
파이썬 시각화의 가장 기본이 되는 라이브러리는 matplotlib입니다. 복잡해 보이지만 기본 문법은 생각보다 단순합니다.
import pandas as pd
import matplotlib.pyplot as plt
# 한글 폰트 설정 (윈도우 기준)
plt.rcParams['font.family'] = 'Malgun Gothic'
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_excel('월별매출.xlsx')
plt.figure(figsize=(8, 5))
plt.plot(df['월'], df['매출액'], marker='o')
plt.title('2026년 상반기 매출 추이')
plt.xlabel('월')
plt.ylabel('매출액(원)')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('매출추이.png', dpi=150)
이 코드 하나로 엑셀 파일을 읽어서 선 그래프를 그리고, 이미지 파일로 저장까지 마칩니다. 매달 이 스크립트를 실행하면 항상 같은 스타일의 그래프가 나옵니다. 이미 엑셀 반복 업무를 파이썬으로 자동화하는 방법에 익숙하신 분이라면 pandas 데이터프레임을 다루는 것까지는 낯설지 않을 것입니다.
두 번째 도구: seaborn으로 더 보기 좋게
matplotlib이 기본기라면 seaborn은 그 위에 얹어서 더 깔끔한 통계 그래프를 손쉽게 그려주는 라이브러리입니다. 특히 여러 항목을 비교하거나 분포를 확인할 때 유용합니다.
import seaborn as sns
plt.figure(figsize=(8, 5))
sns.barplot(data=df, x='부서', y='처리건수')
plt.title('부서별 처리 건수 비교')
plt.tight_layout()
plt.savefig('부서별비교.png', dpi=150)
코드 두세 줄만 바뀌어도 색상, 범례, 오차 막대까지 자동으로 정리된 그래프가 나옵니다. 엑셀에서 조건부 서식과 색상을 일일이 맞추던 시간을 크게 줄일 수 있습니다.

학습 순서는 어떻게 잡아야 할까요
처음부터 모든 그래프 유형을 익히려 하면 금방 지칩니다. 다음 순서를 권합니다.
- pandas로 엑셀·CSV 데이터를 불러오고 정리하는 법 익히기
- matplotlib으로 선 그래프, 막대그래프, 원그래프 그려보기
- seaborn으로 비교 그래프와 분포 그래프 익히기
- 실제 업무 데이터로 매주 반복되는 보고서 그래프를 코드화하기
특히 4번 단계가 중요합니다. 처음부터 새로운 것을 배우려 하지 말고, 지금 매주 또는 매월 손으로 그리고 있는 그래프 하나를 코드로 옮겨보는 것에서 시작하는 것이 좋습니다. 이런 접근 방식은 비전공자를 위한 코딩 입문 로드맵에서 다룬 것처럼, 무엇을 배울지보다 내 업무의 어떤 반복을 줄일지에서 출발하는 것과 같은 원리입니다.
자주 만나는 어려움과 해결 방법
한글 폰트가 깨져서 그래프에 네모 상자만 나오는 경우가 가장 흔합니다. 위 코드처럼 plt.rcParams['font.family']를 먼저 설정해주면 해결됩니다. 회사 PC에 기본으로 설치된 맑은 고딕(Malgun Gothic)을 지정하면 대부분 문제없이 표시됩니다.
두 번째로 자주 겪는 어려움은 데이터 형식 문제입니다. 엑셀에서 숫자처럼 보이지만 실제로는 텍스트로 저장된 셀이 있으면 그래프가 이상하게 그려집니다. 이럴 때는 pd.to_numeric() 함수로 데이터 타입을 먼저 변환해주는 습관을 들이면 좋습니다.
df['매출액'] = pd.to_numeric(df['매출액'], errors='coerce')
errors='coerce' 옵션을 넣으면 숫자로 변환할 수 없는 값은 자동으로 빈 값(NaN) 처리되어, 오류로 코드 전체가 멈추는 것을 막을 수 있습니다.
시각화 다음 단계는 무엇일까요
그래프를 코드로 그릴 수 있게 되면 자연스럽게 다음 궁금증이 생깁니다. “이 많은 데이터를 어디에 저장하고 어떻게 조건에 맞게 뽑아낼까”라는 질문입니다. 이 지점에서 필요해지는 것이 데이터베이스와 SQL입니다. 여러 표를 넘나들며 조건에 맞는 데이터만 추출하는 작업이 잦아진다면 SQL을 함께 배워보는 것도 좋은 다음 단계가 됩니다.
마무리하며
데이터 시각화는 화려한 그래프를 만드는 기술이 아니라, 반복되는 보고서 작업 시간을 줄이고 데이터를 더 정확하게 전달하는 실무 도구입니다. 엑셀 차트에서 막힘을 느꼈다면, 파이썬 시각화 라이브러리부터 하나씩 익혀보시길 권합니다. 픽셀앤코드는 비전공자와 실무자를 대상으로 한 코딩·데이터 활용 교육을 진행하고 있으며, 실제 업무에서 반복되는 보고서 작업을 코드로 전환하는 과정을 함께 설계해드리고 있습니다.