seaborn은 matplotlib을 기반으로 작동하는 시각화 라이브러리이다. 그래서 시본은 맷플럿립을 보완하고 추가적인 기능과 스타일을 제공한다고 한다. 내가보기엔 비슷해보이긴하지만,,?
내가 오늘 이걸 작성하는 이유는 바로 이것때문이다:
seaborn을 통해 그래프를 생성하더라도 출력할 때는 plt.show()함수를 쓴다.
my_df = pd.DataFrame({
'categories' : ["A", "B", "C"],
'values' : [50,30,20]
})
sns.barplot(x='categories', y='values', data=my_df)
plt.show()

my_df = pd.DataFrame({
'categories' : ["A", "B", "C"],
'values' : [50,30,20]
})
sns.barplot(x='categories', y='values', data=my_df, palette='coolwarm')
plt.show()
색 지정을 팔레트로 해주면 그래프마다 색을 다르게 지정하여 이쁘게 표현이 가능하다

간단히 그릴 땐 seaborn, 복잡하게 꾸밀 때는 matplotlib을 추가로 쓴다고 생각하면 됨.
seaborn은 어떤 그래프를 그리던 파라미터가 거의 동일하다. 그래서 그릴때 sns. 가 되면 파라미터는 다 동일하다고 생각하면 된다.
예시
import seaborn as sns
#기본 파라미터 지정
sns.boxplot(data=df, x='generation',y='base_total)
plt.show()
가장 기본적인것만 들어갔을때 이렇게 된다. 여기서 디벨롭하면
예시
import seaborn as sns
# 1. Boxplot 그리기 (세대별 base_total 분포)
#plt.figure(figsize=(6,4))
#,hue='generation',legend=False
sns.boxplot(data=df, x='generation', y='base_total', palette='Set3')
# 2. 그래프 제목과 축 레이블 설정
plt.title('세대별 포켓몬 종합 능력치 분포(boxplot)')
plt.xlabel("세대")
plt.ylabel("종합 능력치")
plt.show()
이런식으로 더 다양한 파라미터들을 사용할 수 있다.
기본구조가 이렇게 된다👇🏻
sns.시각화 할 그래프(data=,x=,y=) +hue=도 있음.
시본에선 hue=라는 파라미터도 기본적으로 들어가있다. 이 아이는 색상 구분 기준이다. 색상을 어떤것으로 분류할 것인가. 비교할 때 사용된다. 범례도 자동적으로 만들어짐. 만약 범례를 없애고 싶다면 legend=False와 같이 없애는게 가능하다.(예를 들면 scatterplot에서)
.map()은 판다스 Series 객체(예: DataFrame의 한 컬럼)에 적용해서, 각 원소(element)를 일대일 대응(mapping)으로 다른 값이나 함수 결과로 변환해주는 메서드이다.
in other words: 각 요소들에 특정한 함수를 적용시킬 때 쓰는 함수이다.
내가 지금까지 썼던 방식은 모든 요소에다가 하나의 함수를 적용시킬 때와 하나씩 대응시키는 딕셔너리 형태로 바꾸는 형식이다.
여기서 매핑이라는 개념도 나오는데,
하나의 값을 다른 값으로 대응시키는 것을 의미한다. 지도를 뜻하는 map에서 나온 말이다. 지도에 표시한 정보가 현실 세계와 1:1로 대응하듯이, 매핑을 통해 하나의 값을 다른 값으로 1:1 대응 시키는 것을 의미한다.
출처-해시넷(매핑 뜻)
좋은 데이터 분석가가 되기 위해선:
1. 더 나은 질문하기- 누군가의 요청을 단순히 보고서처럼 처리하지 말고, 퍼즐처럼 분석하고 해석하라.
2. 비즈니스 배우기- 데이터 외부의 팀과 대화하기. 제품, 영업, 마케팅
3. 스토리텔링을 마스터하라- 숫자는 말하지 않는다. 말은 내가 하는 것이다.
마인드셋. 이 평범한 애널리스트와 훌륭한 데이터분석가의 차이를 가른다. 물론 기술적으로도 우수해야함.
호기심을 가지고 더 깊이 다이빙하기. 이유를 물어보기. 더 나은 스토리를 전달하기