seaborn.objects 네임스페이스는 seaborn plot를 만들기 위한 완전히 새로운 인터페이스로 버전 0.12에 도입되었습니다. 이 인터페이스는 데이터를 변환하고 플롯하기 위한 컴포저블 클래스 모음으로 구성된 보다 일관성 있고 유연한 API를 제공합니다. 기존의 씨본 함수와 달리, 새로운 인터페이스는 matplotlib로 드롭다운하지 않고도 엔드투엔드 플롯 지정 및 사용자 지정을 지원하는 것을 목표로 합니다(필요한 경우 계속 사용할 수 있지만).
참고
객체 인터페이스는 현재 실험 단계이며 불완전합니다. 실제로 사용하기에는 충분히 안정적이지만, 분명 몇 가지 거친 부분과 누락된 기능이 있습니다.
객체 인턴페이스 로드하는 방법
import seaborn.objects as so
(-- seaborn 버진
print(sns.__version__)
이 자꾸 아나콘다 프롬프트에서 seaborn 업그레이드를 해도 0.11.2고정이였느데
-mpip install seaborn==0.12.2
로 설치하는 seaborn.objects 모듈이 설치 되었다 주의하자)
so.Plot(penguins, x="bill_length_mm", y="bill_depth_mm")
.add(so.Dot())
)
x축은 부리의 길이 y축은 부리의 깊이를 측정한 값을 산점도로 나타냈다.
so.Plot(penguins, x="bill_length_mm", y="bill_depth_mm")
.add(so.Dot(color="g", pointsize=4))
)
색과 포인트사이즈를 변경해줬습니다.
(
so.Plot(
penguins, x="bill_length_mm", y="bill_depth_mm",
color="species", pointsize="body_mass_g",
)
.add(so.Dot())
)
이 기본 기능은 새롭지는 않지만, 함수 API와의 중요한 차이점은 프로퍼티를 직접 설정하는 것과 동일한 매개변수 이름을 사용하여 매핑한다는 점입니다(색조 대 색상 등 대신). 중요한 것은 프로퍼티가 정의되는 위치입니다. 도트를 초기화할 때 값을 전달하면 프로퍼티가 직접 설정되는 반면, 플롯을 설정할 때 변수를 할당하면 해당 데이터가 매핑됩니다.
이러한 차이점 외에도 개체 인터페이스를 사용하면 훨씬 더 광범위한 마크 속성을 매핑할 수 있습니다:
(
so.Plot(
penguins, x="bill_length_mm", y="bill_depth_mm",
edgecolor="sex", edgewidth="body_mass_g",
)
.add(so.Dot(color=".8"))
)
edgecolor 매개변수는 점 주변의 경계선 색상을 나타냅니다. 이 코드에서는 "sex" 열 값을 사용하여 점의 성별에 따라 경계선 색상을 다르게 설정하고 있습니다.
edgewidth 매개변수는 경계선의 두께를 나타냅니다. 이 코드에서는 "body_mass_g" 열 값을 사용하여 점의 몸무게에 따라 경계선의 두께를 다르게 설정하고 있습니다.
healthexp = sns.load_dataset("healthexp")
(
so.Plot(healthexp, x="Year", y="Life_Expectancy", color="Country")
.add(so.Line())
)
healthexp를 불러와주고
so.Plot(healthexp, x="Year", y="Life_Expectancy", group="Country")
.add(so.Line())
)
이렇게 그룹화 하지 않고 그냥 보여주는 그리기도 있습니다.
이번 프로젝트때 실습 해봐야하는 챕터 인 것 같습니다.
이만 총총