0. 이 글은 누구를 위한 글인가요?
- 엑셀처럼 Python에서도 그래프 그릴 수 있나요?
- 숫자만 보면 감이 안 와요… 시각화 하고 싶어요!
- matplotlib? seaborn? 뭔가 무섭게 생겼어요…
처음 그래프를 그리는 분들을 위해 아주 쉽고 자세히 설명드릴게요!
1. 시각화 라이브러리 소개
라이브러리 | 설명 |
---|---|
Matplotlib | 가장 기본이 되는 그래프 도구, 세밀한 설정 가능 |
Seaborn | Matplotlib을 더 보기 좋게 꾸며주는 도구, 사용도 간편 |
2. 설치 방법
pip install matplotlib seaborn
2-1. [중요] 한글 깨짐 해결 방법
그래프 제목, 축 이름, 범례 등에서 한글이 깨지거나 물음표(??)로 보일 수 있습니다.
윈도우 사용자
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Malgun Gothic' # 한글 폰트
plt.rcParams['axes.unicode_minus'] = False # 마이너스 깨짐 방지
Mac 사용자
plt.rcParams['font.family'] = 'AppleGothic'
plt.rcParams['axes.unicode_minus'] = False
Tip: 이 설정은 그래프를 그리기 전에 한 번만 하면 됩니다.
3. 예제 데이터 준비
import pandas as pd
data = {
'이름': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
'점수': [88, 75, 90, 95, 82],
'나이': [24, 30, 18, 45, 29],
'도시': ['서울', '부산', '대구', '서울', '부산']
}
df = pd.DataFrame(data)
print(df)
이름 점수 나이 도시
0 Alice 88 24 서울
1 Bob 75 30 부산
2 Charlie 90 18 대구
3 David 95 45 서울
4 Ella 82 29 부산
4. 막대그래프 (Bar Chart)
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 5))
plt.bar(df['이름'], df['점수'], color='skyblue')
plt.title('이름별 점수')
plt.xlabel('이름')
plt.ylabel('점수')
plt.show()
5. 선그래프 (Line Chart)
# 나이 기준으로 정렬
df_sorted = df.sort_values(by='나이')
# 정렬된 데이터로 시각화
plt.figure(figsize=(8, 5))
plt.plot(df_sorted['나이'], df_sorted['점수'], marker='o', linestyle='-', color='green')
plt.title('나이에 따른 점수 변화')
plt.xlabel('나이')
plt.ylabel('점수')
plt.grid(True)
plt.show()
6. 히스토그램 (Histogram)
plt.figure(figsize=(8, 5))
plt.hist(df['점수'], bins=5, color='orange', edgecolor='black')
plt.title('점수 분포 히스토그램')
plt.xlabel('점수')
plt.ylabel('빈도')
plt.show()
7. Seaborn으로 더 깔끔하게 그리기
import seaborn as sns
도시별 평균 점수 (막대그래프)
plt.figure(figsize=(8, 5))
sns.barplot(x='도시', y='점수', data=df, estimator='mean', ci=None)
plt.title('도시별 평균 점수 (Seaborn)')
plt.show()
점수 vs 나이 산점도 (Scatter Plot)
plt.figure(figsize=(8, 5))
sns.scatterplot(x='나이', y='점수', hue='도시', style='도시', data=df, s=100)
plt.title('점수 vs 나이 (도시별 색상)')
plt.show()
8. 그래프 저장하기
plt.savefig('그래프이름.png', dpi=300)
plt.show()
대신 savefig()
를 쓰면 이미지 파일로 저장할 수 있습니다.
9. 그래프 그릴 때 자주 하는 실수
실수 | 해결 방법 |
---|---|
한글 깨짐 | plt.rcParams['font.family'] 설정 |
마이너스 깨짐 | plt.rcParams['axes.unicode_minus'] = False |
그래프 안 뜸 | plt.show() 반드시 실행 |
레이블 겹침 | figsize , rotation 조정 |
10. 요약 정리
시각화 종류 | 사용 함수 |
---|---|
막대그래프 | plt.bar() , sns.barplot() |
선그래프 | plt.plot() |
히스토그램 | plt.hist() |
산점도 | plt.scatter() , sns.scatterplot() |
폰트 설정 | plt.rcParams['font.family'] |
그래프 저장 | plt.savefig() |
'Python' 카테고리의 다른 글
외부 CSV 파일 불러오기부터 분석, 저장까지 실전 예제 완전 정복 (0) | 2025.03.28 |
---|---|
실제 데이터 분석 프로젝트 시작하기 - 인구수 & 평균소득 분석 (기초 예제) (0) | 2025.03.27 |
Pandas로 그룹 분석과 통계 요약 완전 정복! (groupby, describe) (0) | 2025.03.25 |
Pandas로 원하는 데이터만 쏙쏙 뽑기! - 데이터 선택 & 필터링 완전 정복 (0) | 2025.03.24 |
Python Pandas로 데이터 전처리 완전 정복! (결측치, 중복, 정렬) (0) | 2025.03.23 |