Visualization2

지두의 개발자 도전기·2025년 3월 13일

Visualization

목록 보기
2/3
post-thumbnail

판다스 시각화 도구

판다스는 matplotlib과 연동하여 데이터를 쉽게 시각화할 수 있는 기능을 제공함. plot() 메서드를 사용하여 다양한 그래프를 그릴 수 있으며, 데이터의 유형에 따라 적절한 그래프를 선택하여 시각화를 수행함.

1. 시리즈(Series) 시각화

시리즈(Series)는 1차원 데이터 구조로, 시간에 따른 값의 변화나 특정 변수의 값을 표현하는 데 유용함.

● 선 그래프 (Line Plot)

  • Series.plot()을 사용하여 간단한 선 그래프를 그릴 수 있음.
  • 기본적으로 x축은 인덱스, y축은 값이 됨.
  • marker 옵션을 추가하여 점을 강조할 수도 있음.
import pandas as pd
import matplotlib.pyplot as plt

s = pd.Series([1, 3, 2, 5, 7, 8], index=['A', 'B', 'C', 'D', 'E', 'F'])
s.plot(marker='o', linestyle='-')
plt.title("Series Line Plot")  # 그래프 제목 추가
plt.xlabel("Index")  # x축 라벨
plt.ylabel("Values")  # y축 라벨
plt.grid(True)  # 격자 추가
plt.show()

● 막대 그래프 (Bar Plot)

  • kind='bar' 옵션을 사용하여 막대 그래프를 생성할 수 있음.
  • 색상을 지정할 수 있으며, rot 옵션을 사용하여 x축 라벨 회전 가능.
s.plot(kind='bar', color='skyblue', rot=0)
plt.title("Series Bar Plot")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()

2. 데이터프레임(DataFrame) 시각화

데이터프레임(DataFrame)은 2차원 데이터 구조로 여러 개의 열(column)과 행(row)으로 구성됨. 여러 변수의 값을 비교할 때 사용됨.

● 선 그래프 (Line Plot)

  • 여러 열을 한 번에 선 그래프로 나타낼 수 있음.
  • 스타일을 변경하여 선 모양을 조정 가능.
df = pd.DataFrame({
    'A': [1, 3, 2, 4],
    'B': [2, 4, 5, 7]
}, index=['Q1', 'Q2', 'Q3', 'Q4'])

df.plot(marker='o', linestyle='-')
plt.title("DataFrame Line Plot")
plt.xlabel("Quarter")
plt.ylabel("Values")
plt.grid(True)
plt.show()

● 막대 그래프 (Bar Plot)

  • 데이터프레임에서도 kind='bar' 옵션을 사용하여 막대 그래프를 만들 수 있음.
df.plot(kind='bar', color=['blue', 'orange'])
plt.title("DataFrame Bar Plot")
plt.xlabel("Quarter")
plt.ylabel("Values")
plt.legend(title="Categories")
plt.show()

● 누적 막대 그래프 (Stacked Bar Plot)

  • stacked=True 옵션을 사용하여 누적 막대 그래프를 생성할 수 있음.
df.plot(kind='bar', stacked=True, color=['blue', 'orange'])
plt.title("Stacked Bar Plot")
plt.xlabel("Quarter")
plt.ylabel("Total Values")
plt.legend(title="Categories")
plt.show()

● 그래프 스타일 변환

  • style 옵션을 활용하여 선 스타일을 변경할 수 있음.
  • '-', '--', ':', '-.' 등의 스타일을 조합할 수 있음.
df.plot(style=['--', 'o-'])
plt.title("Styled Line Plot")
plt.xlabel("Quarter")
plt.ylabel("Values")
plt.grid(True)
plt.show()

● 히스토그램 (Histogram)

  • 연속형 데이터의 분포를 확인하는 데 유용함.
  • bins 옵션을 통해 구간 개수를 조정할 수 있음.
df.hist(bins=5, color='lightblue', edgecolor='black')
plt.title("Histogram Plot")
plt.xlabel("Value Ranges")
plt.ylabel("Frequency")
plt.show()

● 산점도 (Scatter Plot)

  • 두 개의 변수 간 관계를 나타낼 때 사용.
df.plot(kind='scatter', x='A', y='B', color='red')
plt.title("Scatter Plot")
plt.xlabel("A Values")
plt.ylabel("B Values")
plt.show()

3. 주석 추가 (Annotations)

  • plt.text()를 사용하여 그래프 위에 주석을 추가할 수 있음.
  • arrowprops를 사용하면 화살표 표시 가능.
ax = df.plot(marker='o')
plt.text(1, 3, 'Peak Point', fontsize=12, color='red')  # (x, y) 위치에 텍스트 추가
plt.annotate('Max Value', xy=(3, 7), xytext=(2, 6), 
             arrowprops=dict(facecolor='black', arrowstyle='->'))  # 화살표 추가
plt.show()

0개의 댓글