import numpy as np # Numpy
import pandas as pd # pandas
import matplotlib.pyplot as plt # matplotlib
import seaborn as sns # Seaborn
### 한글 사용
from matplotlib import rcParams # 한글 환경 설정을 위한 rcParams
def setting_styles_basic():
rcParams['font.family'] = 'Malgun Gothic' # Windows
# rcParams['font.family'] = 'AppleGothic' # Mac
rcParams['axes.unicode_minus'] = False # 한글 폰트 사용 시,
# 마이너스 기호가 깨지는 현상 방지
setting_styles_basic()
### 경고창 무시
import warnings
warnings.filterwarnings('ignore')
### 축 커스터마이징
custom_par = {"axes.spines.right": False, "axes.spines.top": False}
sns.set_theme(context='notebook', # 매체: paper, talk, poster
style='darkgrid', # 스타일 설정
palette='deep', # 그래프 색
font='Malgun Gothic', # 글꼴 종류
font_scale=1, # 글꼴 크기
rc=custom_params) # 그래프 세부 사항
import matplotlib.pyplot as plt
import seaborn as sns
### 축 범위 설정
sns.countplot().set(xlim =(1,10),ylim(0,20)) #x축, y축 범위 설정
### 축 라벨 설정
ht = sns.heatmap() # heatmap 생성
ht.set(xlabel="",ylabel="") # 라벨 설정
### 축 위치 변경
ht.xaxis.tick_top() # x축 아래에서 위로 옮기기
ht.yaxis.tick_left # y축 왼쪽에서 오른쪽으로 옮기기
### 그래프 크기 조절
ht.set(rc='figure.figsize':(10,10))
###기본 코드
sns.countplot(dataframe_name['column_name'])
sns.countplot(x=dataframe_name['column_name'])
sns.countplot(x='column_name', data=dataframe_name)
#예시
sns.countplot(df_titanic['class'])
###옵션
sns.countplot(x='class', data=df_titanic,
facecolor=(0, 0, 0, 0), # 가운데 색칠 x
palette ='YlGnBu' # 막대별 색상
hue = '값' # 구분 기준 추가 -> 막대 추가
alpha = '' # 그래프 투명도 지정
order=df_titanic['class'].value_counts().index) # 내림차순
linewidth=5, # 선 두께
edgecolor=sns.color_palette('dark', 3)) # 테두리 선의 색상
### 요약값 표시
ax = sns.countplot(dataframe_name['column_name'])
ax.bar_label(ax.containers[0])
###기본
sns.barplot(data=dataframe_name, x="x값", y="y값")
###옵션
sns.barplot(data=dataframe_name, x="x값", y="y값"
hue ='' #집단 묶기 -> hue별로 막대 생성
ci="sd" #표준 편차
palette =' ' # 구분 색상
alpha = '' # 투명도
estimator # 평균
)
###기본
sns.stripplot(data=dataframe_name, x='column_name',y="column_name)
sns.stripplot(x=dataframe_name_['column_name'])
sns.catplot(data=(dataframe_name), x='column_name', kind='strip')
###데이터가 겹쳐질 경우
sns.swarmplot(data=dataframe_name, x='column_name')
###옵션
sns.stripplot(x=dataframe['column'],y="column_name",
jitter=0.2, # 수평으로 퍼지는 정도,
color='red', # 마커 색상
size=7, # 마커 사이즈
marker='*' # 마커 모양
hue ='' # 문자열 목록
size ='' # 크기
palette =''
)
### 기본
sns.histplot(data=dataframe_name, x='column_name'
hue ='column_name' #구분 col이면 캔버스마다
bins ='str/number' # 구간의 구분
discrete ='bool' # 등급이 막대 중앙
shrink = # 사이 공간
multiple ="", #stuck면 누적 dodge면 다중
element ='poly', #그래프를 분포다각형으로
log_scale =True, # x축값 로그 스케일
)
### 특정 조건
# pandas 사용해 데이터를 조건별로 선택 가능
sns.histplot(
df_penguins[dataframe_name['coloum_name1'] == '조건1']
['column_name2']) #column_name1이 조건 1인 column_name2 값에 대한
#histogram
#히스토그램으로 히트맵 (figure-level) displot사용 (두 변수가 수치형일때)
### 2차원 - 기본
sns.displot(x='column_name1, y='column_name1',
data=dataframe_name, colorbar= True)
### colorbar는 컬러바 유무
### 3차원
sns.displot(x='column_name1', y='column_name1', hue='column_name3',
data=dataframe_name)
### 기본
sns.boxplot(data=dataframe_name, x='column_name1',y='column_name2')
###옵션
sns.boxplot(data=dataframe_name, x='column_name' y='colnum_name2',
orient ="v" # 세로출력
y = 'column_name2' # 집단별
hue ='' # 구분
palette ='' # 팔레트
)
### 기본
sns.violinplot(data=dataframe_name, x='column_name1',y='column_name2')
### 옵션
ax = sns.violinplot(x='column_name1',y='column_name2',
width=0.5, ## 바이올린 폭
linewidth=3, ## 라인 두께
color='y', ## 색상
saturation=0.7 ## 채도
order=[] #[] 별 바이올린 플롯 생성
)
### 기본
sns.kdeplot(data=dataframe_name, x='column_name', y='column_name2')
#y값은 설정은 데이터가 2개일 때
sns.kdeplot(data=dataframe_name, x='column_name',bw_adjust=.25)
# bw 수가 낮을수록 굴록이 많아짐
###연속적 변수가 커지지 않는 경우
sns.kdeplot(data=dataframe_name, x='column_name', hue kind='kde', cut=0) 범위 제한
### 기본
sns.ecdfplot(data=dataframe_name, x='column_name')
### 옵션
sns.ecdfplot(data=dataframe_name, x='column_name',
hue ='column_name2', # 구분
complementary=True # 상보누적분포함수
)
sns.scatterplot(x='column_name1', y='column_name2', data=dataframe_name)
# hue ='column3' : 3차원
# style: 마커 모양 자동 지정
# markers: 마커 모양 수동 지정
# size: 마커 크기 지정
# sizes: 마커 크기의 범위 지정
# legend='full': 모든 데이터포인트 보이게 하기
# hue_norm: 색상 범위 지정
산점도를 기본으로 표시하고 x-y축에 각 변수에 대한 히스토그램을 동시에 보여준다.
x, y 인자에 원하는 열 이름을 지정하고 data 인잣값으로 데이터프레임을 지정
두 변수의 관계와 데이터가 분산되어 있는 정도를 한눈에 파악하기 쉽다.
j_plot = sns.jointplot(x='column_name1',y='column_name2'
data=dataframe_name)
### 기본적으로 column_name1과 column_name2의 산점도를 보여주고
### 그 후 바깥쪽 우측에 column_name2의 히스토그램 위쪽엔 column_name1의 히스트그램
### kind = hexbin을 넣으면 육각형의 산점도
### kind = reg는 회귀선 추가
### kind = kde는 커널 밀집 그래프