데이터분석 study/데이터 전처리&시각화

TIL_24.07.22_데이터 시각화 1

justdata 2024. 7. 22. 17:52

▶데이터 시각화의 목적

    1. 데이터 내의 숨겨진 패턴을 발견하고, 이해하는 데 도움을 준다.

    2. 복잡한 데이터를 이해하고 결정을 내리는 데 도움을 준다.

    3. 데이터 분석 결과를 다른 사람들과 공유하거나 설명할 때

        유용하다.

 

데이터 시각화 라이브러리 (Matplotlib)

● 파이썬에서 시각화를 위한 라이브러리 중 하나, 다양한 종류의 

        그래프를 생성하기 위한 도구를 제공

 

        - 2d 그래픽을 생성하는 데 주로 사용

        - 선 그래프, 막대 그래프, 히스토그램, 산점도, 파이 차트 등

          다양한 시각화 방식을 지원

        - 그래프를 색상, 스타일, 레이블, 축 범위 등을 조절하여 원하는 

          형태로 시각화 할 수 있다.

 

      ● matplotlib.pyplot에서 plot()를 활용하는 방법

 

           - 예를 들어 선그래프를 그리기 위해서는 plot()메서드를 

             호출하고 x 와 y 인수에 각각 x축과 y축에 해당하는 열을

             지정.

 

           - plot() 메서드를 호출할 때 다양한 스타일 옵션을 사용해서 

             그래프의 스타일을 설정, color, linestyle, marker 등의 파라미터를

              사용하여 선의 색상, 스타일, 마커를 변경할 수 있다.

 

         예시코드)

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 그래프 그리기
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()

 

 

        ● 한 꺼번에 설정하기

            - plot() 함수 자체에는 범례, 제목, 텍스트를 직접적으로 입력하는 

              기능은 내장되어 있지 않다.

import matplotlib.pyplot as plt

# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 그래프 그리기
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()

 

        ● 그래프 사이즈 조정 - plt.figure()

             - figsize 는 그래프의 가로와 세로 크기를 인치 단위로 설정

import matplotlib.pyplot as plt

# Figure 객체 생성 및 사이즈 설정
plt.figure(figsize=(8, 6))  # 가로 8인치, 세로 6인치



# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 그래프 그리기
plt.plot(x, y)

# 그래프 출력
plt.show()

 

 

차트

   ● line plot(선 그래프)

       - 연속적인 데이터의 추이를 보여줄 때 사용 

       - 시간에 따른 데이터의 변화, 추세를 보여줄 때 효과적

 

예시 코드)

import pandas as pd
import seaborn as sns 
# 'flights' seaborn 내장 예제 데이터
import matplotlib.pyplot as plt

import seaborn as sns
data = sns.load_dataset('flights')

data.head()

data_grouped = data[['year', 'passengers']].groupby('year').sum().reset_index()
data_grouped

plt.plot(data_grouped['year'], data_grouped['passengers'])
plt.xlabel('year')
plt.ylabel('passengers')
plt.show()

 

 

     ● 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()

 

    * 히스토그램은 막대가 붙어있는 형태(빈도)

    * 히스토그램은 x축은 데이터 값의 범위, y축은 해당 범위에서 

       빈도를 나타냄 

 

    ●Pie Chart

        - 범주형 데이터의 상대적 비율을 시각화하는데 사용

        - 전체에 대한 각 범주의 비율을 보여줄 때 유용, 

           주로 비율을 비교하는데 사용

 

예시코드)

import matplotlib.pyplot as plt

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

plt.pie(sizes,labels=labels)
plt.title('Pie Chart')
plt.show()