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()
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()
그래프 그리기(차트)
그래프 자료유형
그래프 유형 | 자료 유형 | 특징 |
---|---|---|
Line Plot | 연속형 데이터 | 데이터의 변화 및 추이를 시각화 |
Bar Plot | 범주형 데이터 | 카테고리 별 값의 크기를 시각적으로 비교 |
Histogram | 연속형 데이터 | 데이터 분포, 빈도, 패턴 등을 이해 |
Pie Chart | 범주형 데이터의 비율 | 범주별 상대적 비율을 부채꼴 모양으로 시각화 |
Box Plot | 연속형 데이터의 분포 | 중앙값, 사분위수, 최소값, 최대값, 이상치 확인 |
Scatter 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()
# 데이터프레임 생성
data = {'도시': ['서울', '부산', '대구', '인천'],
'인구': [990, 350, 250, 290]}
df = pd.DataFrame(data)
# 막대 그래프 작성
plt.bar(df['도시'], df['인구'])
plt.xlabel('도시')
plt.ylabel('인구')
plt.title('막대 그래프 예시')
plt.show()
Histogram (히스토그램)
- 히스토그램은 연속된 데이터의 분포를 보여줌(주로 데이터의 빈도를 시각화하여 해당 데이터의 분포를 이해하는 데 사용)
- 자료 유형 : 연속형 데이터의 분포를 보여줄 때 사용
- 활용 : 데이터의 빈도나 분포, 패턴을 이해하고자 할 때 유용
Bar vs Histogram 의 차이
구분 | 막대 그래프 | 히스토그램 |
---|---|---|
데이터 유형 | 범주형 데이터 비교 | 연속적 데이터 분포 |
막대 형태 | 수직 or 수평 막대 (크기) | 막대가 붙어있는 형태 (빈도) |
시각화 유형 | 해당 범주의 크기를 나타냄 | X축은 데이터 값의 범위를, Y축은 해당 범위에서의 빈도를 나타냄 |
예시 | 팀별 판매량, 국가별 GDP 등을 비교 | 시험 점수 분포, 온도 변화 등 연속적인 데이터의 분포 |
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()
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()
박스 플롯의 구성 요소
상자(Box) : 상자의 아래쪽 끝은 25%의 값(1사분위수), 상자의 윗쪽 끝은 75%의 값(3사분위수)을 나타냄
상자의 중앙에 위치한 선은 중앙값을 나타냄
수염(Whisker): 상자의 위 아래로 연장되는 선으로, 일반적으로 1.5배의 사분위 범위로 계산되는데, 이 범위를 넘어가는 값은 이상치(outlier)로 간주
수염의 끝은 최솟값과 최댓값을 나타냄
이상치(Outliers): 수염 부분을 벗어나는 개별 데이터 포인트로, 일반적인 범위를 벗어나는 값들을 의미
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()