수업 목표
- 데이터 시각화를 어떤 목적으로 해야할 지를 이해하고 데이터를 시각화하는 방법을 학습한다
1. 데이터 시각화의 목적
- 패턴 발견 및 이해 : 데이터 시각화는 데이터 내의 숨겨진 패턴을 발견하고, 이해하는 데 도움을 준다. 그래프나 차트를 통해 데이터의 특징을 시각적으로 파악할 수 있다.
- 의사 결정 지원 : 시각화는 복잡한 데이터를 이해하고 결정을 내리는 데 도움을 준다. 시각화를 통해 정보를 명확하게 전달하여 의사 결정 과정을 지원한다.
- 효과적인 커뮤니케이션 : 시각화는 데이터 분석 결과를 다른 사람들과 공유하거나 설명 할 때 유용하다. 데이터를 시각적으로 보여주면 이해하기 쉽고 기억하기 쉬운 형태로 전달할 수 있다.
2. Matplotlib
- 파이썬에서 시각화를 위한 라이브러리 중 하나로, 다양한 종류의 그래프를 생성하기 위한 도구를 제공
- 2D 그래픽을 생성하는 데 주로 사용
- 선 그래프, 막대 그래프, 히스토그램, 산점도, 파이 차트 등 다양한 시각화 방식을 지원
- 그래프를 색상, 스타일, 레이블, 축 범위 등을 조절하여 원하는 형태로 시각화 할 수 있음
- matplotlib.pyplot : plot() 함수, 2차원 데이터를 시각화하기 위해 사용
3. 그래프 그리기 - 도구편
1) plot() 활용
: pandas의 plot() 메서드는 DataFrame 객체에서 데이터를 시각화하는 데 사용된다.
예를 들어, 선 그래프를 그리기 위해서는 plot() 메서드를 호출하고 x와 y 인수에 각각 x축과 y축에 해당하는 열을 지정
2) 스타일 설정
: plot() 메서드를 호출할 때 다양한 스타일 옵션을 사용하여 그래프의 스타일을 설정할 수 있다. color, linestyle, marker 등의 파라미터를 사용하여 색상, 스타일, 마커를 변경할 수 있다.
3) 범례 추가하기
: legend() 메서드를 사용하여 그래프의 범례를 추가할 수 있다.
4) 축, 제목 입력하기
: set_xlabel(), set_ylabel(), set_title() 메서드를 사용하여 x축과 y축의 레이블 및 그래프 제목을 추가할 수 있다.
5) 텍스트 추가하기
: text() 메서드를 사용하여 그래프의 특정 위치에 텍스트를 추가할 수 있다.
6) 한꺼번에 설정하는 방법!
- plot() 함수에 color, linestyle, marker, label 등의 파라미터로 스타일과 범례 적용
- xlabel(), ylabel(), title(), legend(), text() 함수들을 사용하여 각각의 설정 추가
- plt.figure() 함수를 사용하여 Figure 객체를 생성하고, 이후에 figsize 매개변수를 이용하여 원하는 크기로 설정 가능
4. 그래프 그리기 - 차트
![]() |
1) Line
: 선 그래프는 데이터 간의 연속적인 관계를 시각화하는 데 적합하며 주로 시간의 흐름에 따른 데이터의 변화를 보여준다.
자료 유형 : 연속적인 데이터의 추이를 보여줄 때 사용됨
활용 : 시간에 따른 데이터의 변화, 추세를 보여줄 때 효과적
import pandas as pd
import matplotlib.pyplot as plt
# 데이터프레임 생성
data = {'날짜': ['2023-01-01', '2023-01-02', '2023-01-03'],
'값': [10, 15, 8]}
df = pd.DataFrame(data)
# '날짜'를 날짜 형식으로 변환
df['날짜'] = pd.to_datetime(df['날짜'])
# 선 그래프 작성
plt.plot(df['날짜'], df['값'])
plt.xlabel('날짜')
plt.ylabel('값')
plt.title('선 그래프 예시')
plt.show()
|
![]() |
2) Bar vs Histogram
- Bar Plot (바 그래프)
: 막대 그래프는 범주형 데이터를 나타내며, 각각의 막대로 값의 크기를 비교하는 데 사용된다.
자료 유형 : 범주형 데이터 간의 비교를 나타낼 때 주로 사용
활용 : 카테고리별로 값의 크기나 빈도를 시각적으로 비교할 때 유용
# 데이터프레임 생성
data = {'도시': ['서울', '부산', '대구', '인천'],
'인구': [990, 350, 250, 290]}
df = pd.DataFrame(data)
# 막대 그래프 작성
plt.bar(df['도시'], df['인구'])
plt.xlabel('도시')
plt.ylabel('인구')
plt.title('막대 그래프 예시')
plt.show()
|
![]() |
- Histogram
: 히스토그램은 연속된 데이터의 분포를 보여주며, 주로 데이터의 빈도를 시각화하여 해당 데이터의 분포를 이해하는 데 사용된다.
자료 유형 : 연속형 데이터의 분포
활동 : 데이터의 빈도나 분포, 패턴을 이해하고자 할 때 유용
import matplotlib.pyplot as plt
import numpy as np
# 데이터 생성 (랜덤 데이터)
data = np.random.randn(1000)
# 히스토그램 그리기
plt.hist(data, bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()
|
![]() |
![]() |
3) Pie
: Pie Chart(원 그래프)는 전체에서 각 부분의 비율을 보여주며 주로 카테고리별 비율을 비교할 때 사용된다.
자료 유형 : 범주형 데이터의 상대적 비율을 시각화하는 데 사용
활용 : 전체에 대한 각 범주의 비율을 보여줄 때 유용하며, 주로 비율을 비교하는 데 사용
import matplotlib.pyplot as plt
# 데이터 생성
sizes = [30, 20, 25, 15, 10]
labels = ['A', 'B', 'C', 'D', 'E']
# 원 그래프 그리기
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title('Pie Chart')
plt.show()
|
![]() |
4) Box Plot
: 박스 플롯은 데이터의 분포와 이상치를 시각적으로 보여준다. 중앙값, 사분위수, 최솟값, 최댓값 등의 정보를 제공하여 데이터의 통계적 특성을 파악하는 데 사용된다.
자료 유형 : 연속형 데이터의 분포와 이상치를 시각화
활용 : 데이터의 중앙값, 사분위수(25%, 50%, 75% 위치의 값), 최소값, 최대값, 이상치를 한눈에 파악
import matplotlib.pyplot as plt
import numpy as np
# 데이터 생성
np.random.seed(10)
data = [np.random.normal(0, std, 100) for std in range(1, 4)]
# 박스 플롯 그리기
plt.boxplot(data)
plt.xlabel('Data')
plt.ylabel('Value')
plt.title('Box Plot')
plt.show()
|
![]() |
참고 ) Box Plot에 대해 알아보자면,
|
5) Scatter Plot
: 산점도는 두 변수 간의 관계를 점으로 표시하여 보여주는 그래프이다.
두 변수 간의 상관관계를 보여주고, 각 점이 데이터 포인트를 나타내며, 그 점들이 어떻게 분포되어 있는지 시각적으로 확인 가능
자료 유형 : 두 변수 간의 관계 및 상관관계를 보여 줄 때 사용
활용 : 변수 간의 관계, 군집 이상치를 확인
import matplotlib.pyplot as plt
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 산점도 그리기
plt.scatter(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Scatter Plot')
plt.show()
|
![]() |
참고 ) 상관관계란?
|
'내일배움캠프_QAQC 트랙 1기 > 강의 요약' 카테고리의 다른 글
[내일배움캠프] 엑셀보다 쉽고 빠른 SQL 4주차 (0) | 2025.01.07 |
---|---|
[내일배움캠프] 엑셀보다 쉽고 빠른 SQL 3주차 (1) | 2025.01.07 |
[내일배움캠프] 데이터 전처리 & 시각화 2-3주차 (1) | 2025.01.02 |
[내일배움캠프] 데이터 전처리 & 시각화 1주차 (0) | 2025.01.02 |
[내일배움캠프] 엑셀보다 쉽고 빠른 SQL 2주차 (1) | 2024.12.30 |