우당탕탕 개발공부
파이썬 데이터 분석 - [ 그래프 ] 본문
🚀 파이썬을 이용한 다양한 그래프
: 2차원 그래프 뿐만 아니라 3차원 그래프, 지도 그래프, 네트워크 그래프, 버블차트 등 다양한 패키지가 있음
seaborn 패키지
: 그래프를 만들 때 많이 사용하는 패키지
산점도
: 데이터를 x축과 y축에 점으로 표현한 그래프
산점도는 나이와 소득처럼 연속값으로 된 두 변수의 관계를 표현할 때 사용
sns.scatterplot( ) 이용
# x축 displ, y축 hwy 나타낸 산점도 만들기
import seaborn as sns
sns.scatterplot( data= mpg , x='displ' , y='hwy')
축 범위 설정하기
: 데이터 전체가 아니라 일부만 표현하고 싶을 때 축 범위 설정
sns.set( )의 xlim과 ylim 이용해 설정
# x축 범위 3-6으로 제한
sns.scatterplot( data = mpg , x = 'displ' , y = 'hwy') \
.set(xlim = (3,6))
# x축 범위 3-6으로 제한 , y축의 범위 10-30으로 제한
sns.scatterplot( data = mpg , x = 'displ' , y = 'hwy') \
.set(xlim = (3,6), ylim = (10,30))
종류별로 표식 색깔 바꾸기
hue( )
# drv별로 표식 색깔 다르게 표현
sns.scatterplot(data=mpg, x='displ',y='hwy', hue='drv'); # ; 사용 시 설명 메시지 출력 x
막대 그래프
: 데이터의 크기를 막대의 길이로 표현한 그래프
성별 소득 차이처럼 집단 간 차이를 표현할 때 사용
sns.barplot( ) 이용
df_mpg = mpg.groupby('drv') \
.agg(mean_hwy = ('hwy','mean'))
df_mpg
seaborn으로 그래프를 만드려면 값이 변수에 담겨야 함
변수를 인덱스로 바꾸지 않고 원래대로 유지하려면 df.groupby( )에 as_idex = False 입력
df_mpg = mpg.groupby('drv', as_index = False) \
.agg(mean_hwy = ('hwy','mean'))
df_mpg
sns.barplot( ) 이용, data = 데이터 프레임을 지정한 다음 x = 범주를 나타낸 변수 y = 평균값을 나타낸 변수 지정
sns.barplot(data = df_mpg, x='drv',y='mean_hwy');
크기순으로 정렬하기
df.sort_values( )에 ascending = False
df_mpg = df_mpg.sort_values('mean_hwy', ascending = False)
sns.barplot( data = df_mpg, x = 'drv', y='mean_hwy')
선 그래프
: 데이터를 선으로 표현한 그래프
시간에 따라 달라지는 데이터를 표현할 때 사용
일정 시간 간격을 두고 나열된 데이터를 시계열 데이터,
시계열 데이터를 선으로 표현한 그래프를 시계열 그래프라고 한다.
sns.lineplot( ) 이용
sns.lineplot( data = economics, x='date',y='unemploy');
💥 x축에 굵은 선으로 보이는 이유
'연월일'을 나타낸 문자가 담겨 있는데, x축에 가로로 여러 번 겹쳣 표시 되어서 굵은 선으로 보임
x축에 연도 표시하기
pd.to_datetime( )을 이용하면 변수의 타입을 날짜 시간 타입으로 바꿀 수 있음
# 날짜 시간 타입 변수 만들기
economics['date2']= pd.to_datetime(economics['date'])
# 변수 타입 확인
economics.info()
변수의 타입을 날짜 시간 타입으로 바꿔도 값은 달라지지 않음 !!
economics[['date','date2']]
df.dt 이용해 연, 월, 일 출력 가능
# 연 추출
economics['date2'].dt.year
# 월 추출
economics['date2'].dt.month
# 일 추출
economics['date2'].dt.day
연도 변수 만들기
# 연도 변수 추가
economics['year'] = economics['date2'].dt.year
economics.head()
x축에 연도 표시하기
sns.lineplot( )의 x에 입력하면 x축에 연도가 표시
# x축에 연도 표시
sns.lineplot( data=economics , x='year', y='unemploy');
선 위아래에 표시된 면적 --> 신뢰구간
신뢰구간을 표시하지 않으려면 ci = None
# 신뢰구간 제거
sns.lineplot( data=economics , x='year', y='unemploy', ci=None);
상자그림
: 데이터의 분포 또는 퍼져 있는 형태를 직사각형 상자 모양으로 표현한 그래프
데이터가 어떻게 분포하고 있는 지 알 수 있기 때문에, 평균값만 볼 때보다 데이터의 특징을 더 자세히 이해할 수 있음
sns.boxplot( ) 이용
sns.boxplot( data = mpg , x='drv',y='hwy');

막대 그래프랑 빈도 막대 그래프를 헷갈렸다.. '빈도'가 들어가면 count 사용하고
그냥 막대그래프는 bar를 사용한다!!! 그리고 빈도 막대 그래프는 y축을 지정하지 않는 듯??
오늘까지해서 기본기가 끝났다 ! 얼른 데이터 분석 예제 공부하고 싶다
'✍ Study > 데이터 분석' 카테고리의 다른 글
파이썬 데이터 분석 - 캐글 데이터 분석 ① [ 넷플릭스 ] (0) | 2023.01.16 |
---|---|
파이썬 데이터 분석 - [ 텍스트 마이닝 ] (0) | 2023.01.11 |
파이썬 데이터 분석 - [ 데이터 정제 ] (0) | 2023.01.09 |
파이썬 데이터 분석 - [ 데이터 가공 3편 ] (0) | 2023.01.07 |
파이썬 데이터 분석 - [ 데이터 가공 2편 ] (0) | 2023.01.06 |