seaborn
그래프 종류
https://coding-kindergarten.tistory.com/120
그래프 종류 (대분류) | 그래프 종류 (소분류) | 설명 |
Relational plots | relplot, scatterplot, lineplot | 두가지 변수(x, y)의 관계를 나타내기 위한 그래프 |
Distribution plots | displot, hisplot, kdeplot, ecdfplot, rugplot, distplot | 변수 하나(x or y) 혹은 변수 두개 (x,y)의 값 분포를 나타내기 위한 그래프 |
Categorical plots | catplot, barplot, countplot, boxplot, violinplot, tripplot, swarmplot, boxenplot, pointplot, | 범주형 변수 (ex. Male/Female, Yes/No)와 연속형 변수(숫자) 간의 관계를 나타내기 위한 그래프 |
Regression plots | Implot, regplot, residplot | 회귀(regression) 분석 결과를 relational p lots과 함께 나타내주는 그래프 |
Matrix plots | heatmap, clustermap | 연속형 변수(숫자) 간의 관계 비율을 2차원 메트릭스로 만들고 그 비율에 따라 색을 입혀서 시각화 |
Multi-plot grids | FacetGrid, pairplot, PairGrid, jointplot, JointGrid | 여러 그래프를 함께 그려 한눈에 비교하기 위한 그래프 |
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_context('paper') # notebook, paper, poster : font line marker 요소 배율 설정
sns.set_palette(sns.color_palette("colorblind")) # Set1, color_palette() 등
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
for col in tips.columns:
if pd.api.types.is_numeric_dtype(tips[col]):
tips[col] = pd.to_numeric(tips[col], errors='coerce') # NaN으로 변환 raise/ignore/coerce
fig, ax = plt.subplots(figsize=(12, 8))
ax.hist(tips[col], bins=20, color='skyblue', edgecolor='black')
ax.set(
xlabel=col, ylabel='Frequency',
title=f'Histogram of {col.capitalize()}'
)
else:
#** not numeric"
fig, ax = plt.subplots(figsize=(12, 8))
sns.countplot(data=tips, x=col, ax=ax)
ax.set(title=f'Count of {col.capitalize()}')
sns.relplot(
data=tips,
x="total_bill",
y="tip",
row="sex",
col="time", #col_wrap=3,
hue="day", palette=['g', 'y', 'b', "r"],
style="smoker",
size="size", sizes=(10, 100),
#color="blue",
kind="scatter",
height=5, aspect=1
)
flights = sns.load_dataset("flights")
flights_wide = flights.pivot(index="year", columns="month", values="passengers")
sns.relplot(data=flights, x="year", y="passengers", hue='month',style='month', kind="line")
sns.relplot(data=flights_wide, kind="line") # same