28. EDA-7

wonny_·2023년 8월 6일
0

EDA

목록 보기
7/10
  • seaborn 기본형태
    • searborn은 matplotlib과 함께 실행
import matplotlib.pyplot as plt 
import seabrn as sns 

# %matplotlib inline
get_ipython().run_line_magic("matplotlib", "inline")
  • sns.set_style()
    • 스타일 지정 가능: white, whitegrid, dark. darkgrid
    • sns.despine(): 테두리 왼쪽과 오른쪽
sns.set_style("white") #그리드 없어지고 배경 흰색 
plt.figure(figsize=(10,6))
plt.plot(x, y1, x, y2, x, y3, x, y4)
sns.despine() 
plt.show()

plt.figure(figsize=(10,6))
plt.plot(x, y1, x, y2, x, y3, x, y4)
sns.despine(offset=10) #왼쪽 하단 선 간격 띄움 
plt.show()

  • tips
    • seaborn에는 실승용 데이터가 몇 개 내장되어 있음
    • 이 중 tips 하나 불러오기
tips = sns.load_dataset("tips")
tips.head(5)

  • boxplot
plt.figure(figsize=(8, 6))
sns.boxplot(x=tips["total_bill"])
plt.show()

  • boxplot에 컬럼 지정
    • sns.boxplot(x축, y축, data='') : 박스형태 그래프
plt.figure(figsize=(8, 6))
sns.boxplot(x="day", y="total_bill", data=tips  
plt.show()

  • 컬럼 지정 및 구분 지을 수 있음
    • hue=column 옵션: 카테고리 데이터 표현
    • palette= "set3" : 색 3 선택
plt.figure(figsize=(8, 6))
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set3")
plt.show()

  • swarmplot: 데이터의 분포 보여줌
    • `sns.swarmplot(x축, y축, data='') : 점 형태 그래프
    • color=".5" : 0~1사이 검은색부터 흰색 사이 값 조절
plt.figure(figsize=(8, 6))
sns.swarmplot(x="day", y="total_bill",  data=tips,colot=".5")
plt.show()

  • boxplot을 swarmplot의 콜라보
plt.figure(figsize=(8, 6))
sns.boxplot(x="day", y="total_bill",  data=tips)
sns.swarmplot(x="day", y="total_bill", data=tips, color=".25")
plt.show()

  • total bill과 tip 사이 관계 파악
    • sns.lmplot(x=축, y=축, data='') : 데이터 사이 관계 파악
sns.set_style("darkgrid")
sns.lmplot(x="total_bill", y="tip", data=tips, size=7)
plt.show()

-흐린영역이 좁을수록 강한 상관관계 가짐

  • implot에서 hue 옵션 사용
sns.lmplot(x="total_bill", y="tip", hue="smoker",data=tips, size=7)
plt.show()


  • pivot옵션 사용한 다른 데이터
flights = flights.pivot("month", "year", "passengers")
flights.head(5)

  • heatmap 이용하여 전체 경향 파악
    • annot=True : 칸 안에 데이터 값 표시
    • fmt="d": 정수형 옵션
    • cmap="YlGnBu" : 원하는 색 표현
plt.figure(figsize=(10, 8))
sns.heatmap(flights, annot=True, fmt="d") 
plt.show()


  • pairplot
sns.set_style("ticks")
sns.pairplot(iris)
plt.show()

  • 원하는 컬럼만 pairplot
sns.pairplot(irls,
         x_vars=["sepal_width", "sepal_length"],
         y_vars=["petal_width", "petal_lenght"])
plt.show()


anscombe = sns.load_dataset("anscombe")
anscombe.head(5)

sns.set_style("darkgrid")
sns.implot(x="x", y="y", data=anscombe.query("dataset == 'I'"), ci=None, size=7)
plt.show()

sns.implot(
    x="x", 
    y="y", 
    data=anscombe.query("dataset == 'I'"), 
    ci=None, 
    scatter_kws={"s":80}, #마커 사이즈 바꾸기 
    size=7,
)    
plt.show()

sns.implot(
    x="x", 
    y="y", 
    data=anscombe.query("dataset == 'II'"),
    order=2
    ci=None, 
    scatter_kws={"s":80},
    size=7,
)    
plt.show()

sns.implot(
    x="x", 
    y="y", 
    data=anscombe.query("dataset == 'III'"),
    robust=True #원래 데이터의 경향에서 굉장히 벗어난 데이터를 없는셈 침 
    order=2
    ci=None, 
    scatter_kws={"s":80},
    size=7,
)    
plt.show()


profile
파이팅

0개의 댓글