Python
데이터 시각화 1
retill28
2024. 7. 5. 05:46
Python에서 데이터 시각화를 하기 위해 다음과 같은 두가지 라이브러리를 사용한다.
matplotlib: 파이썬 데이터 시각화의 가장 기본적인 라이브러리. 유연하게 커스텀이 가능
seaborn: matplotlib을 좀 더 쉽고 아름답게 시각화하는 라이브러리
1. 기본 문법
# 라이브러리
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#기초 plt 관련 문법
plt.figure(figsize=(가로길이, 세로길이)) #그래프 크기 설정
sns.000plot(data=데이터, x=X축 컬럼, y=Y축 컬럼, hue=범례 컬럼) #seaborn으로 그래프 그리기
plt.title(제목) #제목 설정
plt.xlabel(라벨) #x축 라벨 설정
plt.ylabel(라벨) #y축 라벨 설정
plt.legend(loc=범례 위치 설정)
plt.xticks(rotation=x축 각도 설정)
plt.yticks(rotation=y축 각도 설정)
plt.show() #그래프 출력
2. 그래프 종류
아래엔 각종 그래프 종류들을 그리는 방법에 대해서만 서술한다.
데이터셋에 대한 분석이나 탐구 의도는 다음에 포스팅.
순서대로, 막대 그래프, 산점도, 히스토그램, 밀도분포, 상자그림, 여러 컬럼에 대한 상관관계 분포, 히트맵 그리는 코드.
# 막대그래프
plt.figure(figsize=(10,5))
sns.barplot(data=df, x='species', y='body_mass_g')
plt.title('body mass per species')
plt.xlabel('per species')
plt.ylabel('body mass')
plt.show()
# 산점도
# 산점도 기본 sns.scatterplot(data=데이터, x=X축 컬럼, y=Y축 컬럼, hue=색)
# 산점도에 회귀선 추가 sns.lmplot(data=데이터, x=X축 컬럼, y=Y축 컬럼, hue=색)
penguins = sns.load_dataset('penguins')
sns.set_palette('Set2')
%config InlineBackend.figure_format = 'retina'
sns.scatterplot(data=penguins, x='bill_length_mm', y='bill_depth_mm', style='sex', hue='island')
plt.show()
# 산점도에 추세선 그리기 (lmplot)
# col='island' 값에 따라 그래프 여러개 그리기
sns.lmplot(data=penguins, x='bill_length_mm', y='bill_depth_mm', hue='sex', col='island')
plt.show()
# 히스토그램 그리기
# 형태 : sns.displot(data=데이터, x=X축 컬럼, hue=색)
sns.displot(data=penguins, x='flipper_length_mm')
plt.show()
# 밀도 분포
# sns.displot(data=데이터, x=X축 컬럼, hue=색, kind='kde') #밀도 분포
sns.displot(data=penguins, x="flipper_length_mm", kind="kde")
plt.show()
# 상자 그림
# sns.boxplot(data=데이터, x=X축 컬럼, y=Y축 컬럼, hue=색)
sns.boxplot(data=penguins, x='body_mass_g')
plt.show()
#여러 컬럼들간의 분포
#sns.pairplot(data=데이터, hue=색)
sns.pairplot(data=penguins)
plt.show()
# 선 그래프
# sns.lineplot(data=데이터, x=X축 컬럼, y=Y축 컬럼, hue=색)
flights = sns.load_dataset("flights")
sns.lineplot(data=flights, x="year", y="passengers", hue='month')
plt.show()
#히트맵 그리기
#sns.heatmap(data=데이터, annot=값 표시 여부, fmt=값 포맷, cmap=컬러맵)
titanic_corr = titanic[['survived','age','fare','sibsp','pclass']].corr()
sns.heatmap(data=titanic_corr, annot=True, fmt='.2f', cmap='YlOrBr')
plt.show()