본문 바로가기
[업무 지식]/Python

Python / 데이터 시각화

by 에디터 윤슬 2024. 10. 23.
 

Matplotlib

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

Seaborn

iris 데이터셋: 붓꽃의 꽃잎과 꽃받침의 길이와 너비를 포함한 데이터셋입니다.
tips 데이터셋: 음식점에서의 팁과 관련된 정보를 담고 있는 데이터셋입니다.
titanic 데이터셋: 타이타닉 호 승객들의 정보를 포함한 데이터셋입니다.
flights 데이터셋: 연도별 항공편 정보를 담고 있는 데이터셋입니다.
planets 데이터셋: 외계 행성 발견에 대한 정보를 담고 있는 데이터셋입니다.
import seaborn as sns

# 'tips' 데이터셋 불러오기
tips_data = sns.load_dataset('tips')

# 데이터셋 확인
print(tips_data.head())

 

그래프 그리기 - 도구편

Matplotlib.pyplot에서 plot() 활용하기

import pandas as pd
import matplotlib.pyplot as plt

# 샘플 데이터프레임 생성
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1]
}
df = pd.DataFrame(data)

# 선 그래프 그리기
df.plot(x='A', y='B')
plt.show()

스타일 설정하기

ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o')


plt.show()
  • Color(색상):
    • 색상은 문자열로 지정할 수 있으며, 'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'와 같은 기본 색상 이름 또는 RGB 값을 직접 지정할 수 있습니다.
  • Linestyle(선 스타일):
    • 선의 스타일은 '-'(실선), '--'(대시선), ':'(점선), '-.'(점-대시선) 등으로 지정할 수 있습니다.
  • Marker(마커):
    • 마커는 데이터 포인트를 나타내는 기호로, 'o'(원), '^'(삼각형), 's'(사각형), '+'(플러스), 'x'(엑스) 등 다양한 기호로 지정할 수 있습니다.

범례 추가하기

#1 label
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o', label='Data Series')

#2 legend
ax.legend(['Data Series'])


#1번 또는 2번 방법으로 범례를 추가할 수 있습니다.
plt.show()

 

축, 제목 입력하기

ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Title of the Plot')


plt.show()

 

텍스트 추가하기

ax.text(3, 3, 'Some Text', fontsize=12)

plt.show()

 

한번에 설정

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

 

크기 변경

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

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

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

Box Plot

  • 데이터의 분포와 이상치를 시각적으로 보여준다
  • 중앙값, 사분위수, 최솟값, 최댓값 등의 정보 제공
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()

 

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

'[업무 지식] > Python' 카테고리의 다른 글

[Python 기초] ②  (0) 2024.10.24
[Python 기초] ①  (0) 2024.10.24
Python / 데이터 집계  (0) 2024.10.23
python / boolean indexing  (0) 2024.10.23
Python / 코드 핵심 요약  (0) 2024.10.23