Python에서 간단한 차트 그리기

Python으로 간단한 차트 그리기

Python은 데이터 시각화 분야에서 매우 인기가 있으며, 다양한 라이브러리를 통해 쉽게 차트를 작성할 수 있습니다. 특히, MatplotlibSeaborn, Pandas와 같은 라이브러리를 활용하면 데이터의 시각적인 표현이 용이합니다. 이번 글에서는 이러한 라이브러리들을 이용하여 간단한 차트를 만드는 방법을 살펴보겠습니다.

필수 라이브러리 설치 및 설정

먼저 차트를 생성하기 위해 필요한 라이브러리를 설치해야 합니다. 필요한 라이브러리는 다음과 같습니다:

  • Pandas
  • Numpy
  • Matplotlib
  • Seaborn

위의 라이브러리를 설치한 후, 주피터 노트북에서 다음과 같이 설정합니다:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 그래프 표현 모드 설정
%matplotlib notebook 

한글 폰트 및 그래프 크기 설정

한글을 포함한 텍스트가 잘 보이도록 한글 폰트를 설정하고, 그래프의 크기를 조정합니다. 다음 코드를 사용하여 설정할 수 있습니다:

from matplotlib import font_manager, rc, rcParams
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
rcParams['axes.unicode_minus'] = False
rcParams["figure.figsize"] = (6, 4) # 그래프 크기 설정

차트 유형

이제 다양한 차트 유형에 대해 알아보겠습니다. 데이터 시각화에서 주로 사용하는 차트 유형은 선 그래프, 막대 그래프, 개수 그래프, 산점도, 히스토그램, 상자 그림 등이 있습니다.

1. 선 그래프 (Line Plot)

선 그래프는 시간에 따른 데이터의 변동을 시각적으로 표현하는 데 매우 유용합니다. 다음은 야구 타선의 타율장타율을 시각화한 예시입니다:

plt.figure() # 새로운 그래프 도화지 생성
x = df_lineup.index # 타순
y = df_lineup['타율'] # 타율
y2 = df_lineup['장타율'] # 장타율
plt.plot(x, y, label='타율')
plt.plot(x, y2, label='장타율')
plt.legend() # 범례 표시

2. 막대 그래프 (Bar Plot)

막대 그래프는 항목 간의 비교를 할 때 유용합니다. 다음은 타순의 선수별 홈런 개수를 보여주는 그래프입니다:

plt.figure() # 새로운 그래프 도화지 생성
x = df_lineup['선수명']
y = df_lineup['홈런']
plt.bar(x, y) # 세로 막대 그래프

3. 가로 막대 그래프 (Horizontal Bar Plot)

가로 막대 그래프는 항목의 이름이 길거나 많은 경우 유용합니다:

plt.figure()
x = df_lineup['선수명']
y = df_lineup['홈런']
plt.barh(x, y) # 가로 막대 그래프

4. 개수 그래프 (Count Plot)

특정 카테고리에서 데이터의 수를 보여주는 개수 그래프를 그려보겠습니다. 예를 들어, 팀별 선수 수를 시각화할 수 있습니다:

x = df['팀명'].unique()
y = df.groupby('팀명')['선수명'].count()
plt.figure()
plt.bar(x, y) # 팀별 선수 수 표시

5. 산점도 (Scatter Plot)

산점도는 두 변수 간의 관계를 시각적으로 표현합니다. 예를 들어, 삼진홈런의 관계를 확인할 수 있습니다:

x = df['삼진']
y = df['홈런']
plt.figure()
plt.scatter(x, y) # 산점도 생성

6. 히스토그램 (Histogram)

히스토그램은 데이터 분포를 시각화하는 방법입니다. 특정 변수의 빈도를 확인할 수 있습니다. 예를 들어, 타자의 타율 히스토그램을 생성할 수 있습니다:

plt.figure()
plt.hist(df['타율'], bins=15) # 타율 히스토그램

7. 상자 그림 (Box Plot)

상자 그림은 데이터의 분포, 범위, 이상값을 시각적으로 확인할 수 있게 해줍니다. 선수별 성적 데이터 등에 대해 활용할 수 있습니다.

Plotly를 통한 인터랙티브 차트 생성

차트를 더욱 발전시키고 싶다면, Plotly 라이브러리를 사용할 수 있습니다. Plotly는 인터랙티브한 차트를 쉽게 생성할 수 있는 도구입니다. 사용하기 위해서는 다음과 같이 설치해 주세요:

!pip install plotly

Plotly의 주요 라이브러리인 plotly.express를 사용하여 차트를 그리는 방법은 다음과 같습니다:

import plotly.express as px
df = pd.read_csv('데이터파일.csv') # 데이터 불러오기
fig = px.scatter(df, x='삼진', y='홈런') # 산점도 생성
fig.show() # 차트 출력

마무리

Python을 통해 다양한 차트를 쉽게 만들 수 있다는 것을 이해하셨나요? Matplotlib, Seaborn, Pandas, Plotly와 같은 강력한 도구를 활용하면 데이터를 시각적으로 표현하는 데 필요한 다양한 방법을 제공받을 수 있습니다. 이러한 기법들을 적절히 조합하여 데이터 분석 및 보고서 작성에 유용하게 사용하시기 바랍니다.

자주 묻는 질문 FAQ

Python으로 차트를 그리려면 어떤 라이브러리를 사용해야 하나요?

차트를 작성하기 위해 주로 사용되는 라이브러리는 Matplotlib, Seaborn, Pandas 및 Numpy입니다. 이들 각각은 다양한 시각화 기법을 지원합니다.

데이터 시각화에서 선 그래프는 어떤 용도로 사용되나요?

선 그래프는 시간에 따른 변화나 추세를 시각적으로 표현하는 데 매우 효과적입니다. 주로 연속적인 데이터를 나타낼 때 활용됩니다.

Python에서 한글 폰트를 설정하는 방법은 무엇인가요?

한글이 제대로 표시되도록 하려면 Matplotlib의 설정을 통해 한글 폰트를 지정해야 합니다. 일반적으로 Malgun Gothic과 같은 폰트를 사용합니다.

Plotly를 활용한 차트의 특징은 무엇인가요?

Plotly는 사용자가 상호작용할 수 있는 인터랙티브한 차트를 작성할 수 있도록 돕는 라이브러리입니다. 사용자 편의성을 고려하여 다양한 기능을 제공합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤