내일배움캠프(QC,QA_5기)

[내일배움캠프_QA/QC 5기] 35일차 _ 데이터 전처리&시각화 4강

qc-standard 2026. 4. 25. 01:52

2026/04/24 Fri.

데이터 전처리&시각화 완강
 머신러닝 기초 완강
 개인 과제 시작
자격증 공
 주간 목표 ↓
   자격증 공부
 데이터 전처리 완강
머신러닝 기초 완강
머신러닝 심화 완강

 

 


⊙ 데이터 전처리&시각화 - 4강

● 데이터 시각화가 중요한 이유

  • 어디에 집중을 하고 어떤 전략을 수립해야할지 방향을 제시하는 역할을
    데이터를 통해 전달하는 것이 데이터 분석의 역할이며,
    분석된 결과에 따라 다양한 의사결정이 이루어질 수 있다
  • 의사결정을 더욱 쉽게할 수 있도록 데이터를 잘 전달해야 한다.

● 데이터 시각화의 목적

  • 패턴 발견 및 이해 : 데이터 내의 숨겨진 패턴을 발견하고, 이해하는데 도움을 준다
  • 의사 결정 지원 : 시각화는 복잡한 데이터를 이해하고 결정 내리는데 도움을 준다
  • 효과적인 커뮤니케이션 : 분석 결과를 공유하거나 설명할 때 유용하다

● Matplotlib

  • 파이썬에서 시각화를 위한 라이브러리 중 하나
  • 2D 그래프를 생성하는데 주로 사용

matplotlib.pyplot

plot( )   : 2차원 데이터 시각화하긱 위해 사용


☑️ 그래프 그리기

import matplotlib.pyplot as plt
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 선 그래프 그리기
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot')
plt.show()

 

☑️ 스타일 

ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o')
plt.show()
# color : 그래프 색상 : 색상 이름 / RGB값으로 지정

# linestyle : 선 스타일
# '-' 실선 / '--' 대시선 / ' : ' 점선 / ' -. '점-대시선

# marker : 데이터 포인트
# 'o' 원 / ' ^ ' 삼각형 / 's' 사각형 / '+' 플러스 / 'x' 엑스

 

☑️ 범례 

#label
ax = df.plot(x='A', y='B', color='pink', linestyle='--', marker='o', label='dataseries')
plt.show()
#legend
ax = df.plot(x='A', y='B', color='pink', linestyle='--', marker='o')
ax.legend(['DaterSeries'])
plt.show()

 

☑️ 축, 제목 입력

ax = df.plot(x='A', y='B', color='skyblue', linestyle='--', marker='o')
ax.legend(['DataSerise'])
ax.set_xlabel('x-axis Label')
ax.set_ylabel('y-axis Label')
ax.set_title('Title of the Plot')
plt.show()

 

☑️ 텍스트 추가 

ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o')
ax.legend(['DataSeries'])
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Title of the Plot')
ax.text(1, 4.5, 'text', fontsize=12) # 특정 좌표에 텍스트 추가
plt.show()

 

☑️ 크기

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

#figure사이즈를 먼저
plt.figure(figsize=(10,5))

plt.plot(x, y, color='green', linestyle='--', marker='o', label='Data Series')

plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Title of the Plot')
plt.legend()
plt.text(3, 8, 'Some Text', fontsize=12)


plt.show()

● 시각화

그래프 유형

자료 유형

특징 

Line Plot

연속형 데이터 = 수치형 데이터 데이터의 변화 및 추이 - 시각화

Bar Plot

범주형 데이터 카테고리 별 값의 크기 - 시각화

Histogram 

연속형 데이터 = 수치형 데이터  데이터 분포, 빈도, 패턴 

Pie Chart

점주형 데이터의 비율 범주별 상대적 비율을 부채꼴 모양으로 시각화 

Box Plot

연속데 데이터의 분포 중앙값, 사분위수, 최소값, 최대값, 이상치 확인

Scatter Plot

두 변수 간 관계 변수 간 관계, 군집, 이상치 확인

 

☑️ Line Plot (선 그래프) : 연속적인 데이터 추이 변화 시각화

plt.plot( data_group['year'], data_group['passengers'])

# ()안에 x, y가 될 값들 넣기
plt.xlabel('Year')
plt.ylabel('Passengers')
plt.show()

plt.plot(df['날짜'], df['값'])
plt.xlabel('date')
plt.ylabel('value')
plt.title('line plot ex')
plt.show()

 

☑️ Bar Plot (막대그래프)  vs  Histogram (히스토그램)
: Bar - 각각 막대(각각 범주데이터)로 크기 비교
: Histo - 연속 데이터의 분포, 빈도 시각화 

#bar = 바 그래프
#()안에 x,y
plt.bar(df['도시'], df['인구'], color='skyblue')

plt.xlabel('city')
plt.ylabel('population')
plt.title('Bar ex')
plt.show()
#bins : 구간설정
plt.hist(data, bins=30, color='green')

plt.xlabel('value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()
히스토그램
: x - 데이터 값의 범위
: y - 범위에서의 빈도

 

☑️ Pie Chart (원 그래프) 

sizes = [30, 20, 25, 15, 10]
Label = ['A', 'B', 'C', 'D', 'E']

# 원 그래프 그리기
plt.pie(sizes, labels=Label)
plt.title('Pie Chart')
plt.show()
sizes = [30, 20, 25, 15, 10]
Label = ['A', 'B', 'C', 'D', 'E']

# 원 그래프 그리기
plt.pie(sizes, labels=Label, autopct='%.0f%%')
# autopct : 퍼센트를 자동 계산해서 표시해줄게
# % : autopct을 시작한다
# .nf : 소수점 아래 n번째 f(실수)로 나타내겠다
# %d%% : 정수로 나타내겠다
# %% = % 기호
plt.title('Pie Chart')
plt.show()

☑️ Box Plot (박스플롯)

plt.boxplot(sepal_lengths_list, labels=species)
plt.ylabel('Sepal Length')
plt.xlabel('Species')
plt.title('Box Plt')
plt.show()
● 상자(Box)
: 노란선 - 중앙값=Q2 - 데이터 중간에 위치한 값 / 데이터 대표값 파악에 사용
: 박스 위 - Q3 - 데이터 25% 위치한 값
: 박스 아래 - Q1 - 데이터 75% 위치한 값
사분위수 : 데이터를 4등분하는 3개의 지점한 지점

수염(Whisker)
: 상자의 위 아래로 연장되는 선

: 일반적으로 1.5배의 사분위 범위로 계산
: 수염 끝은 최솟값과 최댓값

이상치(Outliers)
:
수염 부분을 벗어나는 개별 데이터 포인트
: 패턴에서 크~게~ 벗어나는 값

 

☑️ Scatter Plot (산점도) : 상관관계

plt.scatter(iris['petal_length'], iris['petal_width'])
plt.xlabel('Petal Length')
plt.ylabel('Petal width')
plt.show()
#숫자들을 가지고 상관관계를 나탄나겠다
#상관계수를 나타내느 표
iris.corr(numeric_only=True)
양의 상관관계 : 오른쪽 위 방향으로 한 변수가 증가할 때 다른 변수도 증가하는 경향
● 음의 상관관계 :
왼쪽 아래 방향으로 한 변수가 증가할 때 다른 변수는 감소하는 경향
● 무상관 관계 :
어떤 방향도 아닌 무작위로 퍼져있을 때

상관관계 강도 확인
: 점들의 모임 / 방향성 / 상관계수 계산
 
● 피어슨 상관계수(Pearson correlation coefficient)
: 두 변수간의 선형 관계를 측정하기 위한 통계적 방법
:
연속형 변수들 간의 상관관계 평가에 사용
: 범위 -1 ~ 1 사이
: 1 - 양의 상관관계
: -1 - 음의 상관관계
: 0 - 무상관 관계