matplotlib이란?
파이썬에서 시각화를 위한 라이브러리 중 하나로, 다양한 종류의 그래프를 생성하기 위한 도구를 제공
2D 그래픽을 생성하는 데 주로 사용한다.
import matplotlib.pyplot as plt
import로 matplotlib 라이브러리를 가져와준다.
# 선 그래프 그리기
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot')
plt.show()
1. 그래프 그리기
1) 도구
pandas의 plot() 메서드는 DataFrame 객체에서 데이터를 시각화하는 데 사용됨.
plot() 메서드를 호출하고 x와 y인수에 각각 x축과 y축에 해당하는 열을 지정함.
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()
2) 스타일 설정하기
plot() 메서드를 호출할 때 다양한 스타일 옵션을 사용하여 그래프의 스타일을 설정할 수 있음.
- Color(색상)
- 'blue', 'green'과 같이 기본 색상 이름 또는 RGB 값을 직접 지정할 수 있음.
- Linestyle(선 스타일)
- 선의 스타일은 '-' 실선, '--' 대시선, ':' 점선, '-.' 점-대시선 등으로 지정할 수 있음.
- Marker(마커)
- 마커는 데이터 포인트를 나타내는 기호로 'o'(원), '^'(삼각형), 's'(사각형), '+'(플러스), 'x'(엑스) 등 다양한 기호로 지정할 수 있음.
3) 범례 추가하기
legend() 메서드를 사용하여 그래프의 범례를 추가할 수 있음.
#1 label
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o', label='Data Series')
#2 legend
ax.legend(['Data Series'])
plt.show()
1번 또는 2번 방법으로 범례를 추가할 수 있음.
4) 축, 제목 입력하기
set_xlabel(), set_ylabel(), set_title() 메서드를 사용하여 x축과 y축의 레이블 및 그래프 제목을 추가할 수 있음.
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Title of the Plot')
plt.show()
5) 텍스트 추가하기
text() 메서드를 사용하여 그래프의 특정 위치에 텍스트를 추가할 수 있음.
ax.text(3, 3, 'Some Text', fontsize=12)
plt.show()
6) 그래프 키우기
plt.figure() 함수를 사용하여 Figure 객체를 생성하고, 이후에 figsize 매개변수를 이용하여 원하는 크기로 설정할 수 있음.
plt.figure(figsize=(8, 6)) # 가로 8인치, 세로 6인치
2. 그래프 그리기 - 차트
(참고)
그래프 유형은 다음과 같다.
1) 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()
2) Bar plot(막대 그래프)
막대 그래프는 범주형 데이터를 나타냄. 각각의 막대로 값의 크기를 비교하는 데에 사용
# 데이터프레임 생성
data = {'도시': ['서울', '부산', '대구', '인천'], '인구': [990, 350, 250, 290]}
df = pd.DataFrame(data)
# 막대 그래프 작성
plt.bar(df['도시'], df['인구'])
plt.xlabel('도시')
plt.ylabel('인구')
plt.title('막대 그래프 예시')
plt.show()
3) 히스토그램
히스토그램은 연속된 데이터의 분포를 보여줌.
주로 데이터의 빈도를 시각화하여 해당 데이터의 분포를 이해하는 데 사용됨.
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()
bins = 30 >> 몇 개의 구간을 둘 것인가?
■ Bar와 히스토그램의 차이는 ?
데이터를 시각화하는 목적이 다른 그래프임.
4) 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()
5) 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()
박스 중앙의 선 - 중앙 값
박스 밑에 선 - 25%
박스 위에선 - 75%
위아래 최대, 최소
6) 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()
'TIL > 전처리, 시각화' 카테고리의 다른 글
전처리 <그룹 내 데이터 최빈값으로 대체하기> (0) | 2024.07.28 |
---|---|
데이터 전처리 <IQR 이상치 제거> (1) | 2024.07.26 |
데이터 전처리2 (0) | 2024.07.19 |
데이터 전처리1 (0) | 2024.07.18 |