반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- numpy
- 경사하강법
- 파이썬
- matplotlib
- 로지스틱회귀
- Seaborn
- 결정트리
- 영국석사
- 판다스
- 코딩독학
- 행렬
- 윈도우함수
- 다항회귀
- 유학생
- sql연습문제
- 코드잇 TIL
- 코드잇
- 머신러닝
- 코드잇TIL
- 나혼자코딩
- 런던
- for반복문
- 코딩
- 코딩공부
- SQL
- 데이터분석
- 선형회귀
- 오늘도코드잇
- CSS
- HTML
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(데이터분석) matplotlib으로 선도표 나타내기 본문
728x90
반응형
1. 선도표
- 선도표는 하나의 숫자 변수가 두 번째 변수에 따라서 변화하는 동향을 나타내기 위해 자주 사용되는 차트입니다.
- 모든 데이터 포인터가 표시되는 산점도와 달리 선도표는 모든 고유의 x값 혹은 x의 계급에 대해 오직 하나의 점만 차트에 표시됩니다.
- x의 계급에 여러 개의 관찰값이 존재할 때는 해당 계급 내 데이터의 평균이나 중앙값과 같은 요약 통계를 y축 값으로 차트에 표시합니다.
- x변수가 시간을 나타낼 때는 해당 데이터를 나타낸 선도표를 시계열 차트라고 부릅니다.
- ex) 주가나 환율을 나타내는 차트는 각 시점에 오직 하나의 관찰값만 표시됩니다.
- 선도표는 Matplotlib으로 나타낼 수 있습니다.
2. matplolib으로 나타내기
- 점 사이 선을 표시하는 matplotlib의 error bar 함수를 사용해보겠습니다.
plt.errorbar(data=df, x='displ', y='comb')
plt.xticks(rotation=15);
plt.ylabel('Avg. Combined Fuel Efficiency (mpg)');
- 구조를 생각하지 않고 주어진 DataFrame을 무작정 함수에 집어넣는다면 위의 이미지처럼 차트가 엉망이 될 수 있습니다.
- 함수는 DataFrame 내의 첫 번째 행부터 마지막 행까지 존재하는 모든 값을 차트상에 선으로 연결합니다.
- 따라서 우리가 원하는 형태의 선도표를 만들기 위해서는 데이터를 별도로 요약해야 합니다.
#데이터를 몇 개의 계급으로 나눌 것인지 설정
#계급 경계를 설정하고 각 계급의 중심값 계산하기
bin_edges = np.arange(0.6, 7+0.2, 0.2)
bin_centers = bin_edges[:-1] + 0.1 #마지막 값은 제외
#설정된 계급 경계에 따라 데이터를 구간으로 나눔.
#pandas.cut()함수에 df['displ']열을 전달하면 series 객체가 반환
#include_lowest=True : 평균에 상응하는 값이 bin에 포함됨
displ_binned = pd.cut(df['displ'], bin_edges, include_lowest=True)
displ_binned
#grouopby를 사용해 그룹화한 후 각 bin(계급)에 속하는 점들의 평균과 표준편차 계산
comb_mean = df['comb'].groupby(displ_binned).mean()
comb_std = df['comb'].groupby(displ_binned).std()
#요약된 데이터를 차트에 나타내기
plt.errorbar(x=bin_centers, y=comb_mean, yerr=comb_std)
plt.xticks(rotation=15);
plt.xlabel('Displacement (1)')
plt.ylabel('Avg. Combined FUel Efficiency (mpg)');
- 위 그래프를 해석해보면, 엔진 크기가 작은 차량의 연료 효율이 일반적을 더 높지만, 효율성의 변동성도 훨씬 높다는 것을 알 수 있습니다.
728x90
반응형
'코딩공부 > Data analysis' 카테고리의 다른 글
(데이터분석) 다변량 데이터에서 Faceting(면 분할)하기 (0) | 2024.05.29 |
---|---|
(데이터분석) matplotlib,seaborn에서 마커를 이용하여 다변량 변수 나타내기 (1) | 2024.05.28 |
(데이터분석) seaborn으로 히스토그램 faceting(면 분할) 하기 (0) | 2024.05.27 |
(데이터분석) seaborn으로 병렬 막대 차트(Clustered bar chart), 히트맵(heatmap)그리기 (0) | 2024.05.27 |
(데이터분석) seaborn으로 상자 그림(box plot) 나타내기 (0) | 2024.05.27 |