그래프 도구
1) 스타일 설정
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o')
- Color : 문자열로 지정할 수 있으며, 'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'와 같은 기본 색상 이름 또는 RGB 값을 직접 지정 가능
- Linestyle : '-' (실선), '--'(대시선), ':'(점선), '-.'(점-대시선) 등으로 지정
- Marker: 데이터 포인트를 나타내는 기호로, 'o' (원), '^' (삼각형), 's' (사각형),'+'(플러스), 'x' (엑스) 등 지정
2) 범례 추가
#1 label
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o', label='Data Series')
#2 legend
ax.legend(['Data Series'])
3) 축, 제목 입력
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Title of the Plot')
4) 텍스트 추가
ax.text(3, 3, 'Some Text', fontsize=12)
5) 그래프 크기 조정
# Figure 객체 생성 및 사이즈 설정
plt.figure(figsize=(8, 6)) # 가로 8인치, 세로 6인치
그래프 그리기
1) Line plot (선 그래프)
- 선 그래프는 데이터 간의 연속적인 관계를 시각화하는 데에 적합함
- 주로 시간의 흐름에 따른 데이터의 변화를 보여줌
- 자료 유형: 연속적인 데이터의 추이를 보여줄 때 사용
- 활용: 시간에 따른 데이터의 변화, 추세를 보여줄 때 효과적
# 데이터프레임 생성
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) Histogram
- 연속된 데이터의 분포를 보여주고, 주로 데이터의 빈도를 시각화하여 해당 데이터의 분포를 이해하는 데 사용
- 자료 유형: 연속형 데이터의 분포를 보여줄 때 사용됨
- 활용: 데이터의 빈도나 분포, 패턴을 이해하고자 할 때 유용함
# 데이터 생성 (랜덤 데이터)
data = np.random.randn(1000)
# 히스토그램 그리기
plt.hist(data, bins=30)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()
4) Pie chart(원 그래프)
- 주로 카테고리별 비율을 비교할 때 사용
- 자료 유형: 범주형 데이터의 상대적 비율을 시각화하는 데 사용
- 활용: 전체에 대한 각 범주의 비율을 보여줄 때 유용하며, 주로 비율을 비교하는 데 사용
# 데이터 생성
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
- 데이터의 분포와 이상치를 시각적으로 보여줌
- 중앙값, 사분위수, 최솟값, 최댓값 등의 정보를 제공하여 데이터의 통계적 특성을 파악하는 데 사용
- 자료 유형: 연속형 데이터의 분포와 이상치를 시각화하는 데 주로 사용
- 활용: 데이터의 중앙값, 사분위수(25%, 50%, 75% 위치의 값), 최소값, 최대값, 이상치를 한눈에 파악할 수 있음
# 데이터 생성
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()
6) Scatter plot (산점도)
- 두 변수 간의 관계를 점으로 표시하여 보여주는 그래프
- 두 변수 간의 상관 관계를 보여주고, 각 점이 데이터 포인트를 나타내며, 그 점들이 어떻게 분포되어 있는지 시각적으로 확인할 수 있음
- 자료 유형: 두 변수 간의 관계 및 상관관계를 보여줄 때 사용
- 활용: 변수 간의 관계, 군집, 이상치를 확인하고자 할 때 유용함
# 데이터 생성
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()
상관관계란?
1. 양의 상관관계
- 산점도에서 점들이 오른쪽 위 방향으로 일직선으로 분포되어 있을 때를 말함
- 하나의 변수가 증가할 때 다른 변수도 증가하는 경향이 있음
2. 음의 상관관계
- 산점도에서 점들이 왼쪽 위 방향으로 일직선으로 분포되어 있을 때를 말함
- 하나의 변수가 증가할 때 다른 변수는 감소하는 경향이 있음
3. 무상관관계
- 산점도에서 점들이 어떤 방향으로도 일직선으로 분포하지 않고 무작위로 퍼져 있을 때를 말함
- 두 변수 간에는 상관관계가 거의 없음
피어슨 상관계수란?
- 두 변수 간의 선형적인 관계를 측정하기 위한 통계적인 방법 중 하나
- 주로 연속형 변수들 간의 상관관계를 평가하는 데 사용됨
특징
1. 범위 : -1에서 1사이의 값을 가짐
2. 양의 상관관계: 1에 가까울수록 강한 양의 선형관계를 나타냄
3. 음의 상관관계: -1에 가까울수록 강한 음의 선형관계를 나타냄
4. 무상관관계: 0에 가까울수록 선형관계가 거의 없거나 약한 관계를 가짐
'TIL' 카테고리의 다른 글
| [1/14] TIL - 코드카타, 기초 프로젝트, SQL (2,3주차) (1) | 2025.01.14 |
|---|---|
| [1/7] TIL - SQL (1주차) (0) | 2025.01.07 |
| [1/2] TIL - 데이터 전처리 & 시각화 (3주차) (0) | 2025.01.02 |
| [12/31] TIL - 데이터 전처리 & 시각화 (1,2주차) (2) | 2024.12.31 |
| [12/30] TIL (데이터 리터러시) (2) | 2024.12.30 |