기본 콘텐츠로 건너뛰기

[seaborn] seaborn의 함수에 사용하는 속성(인수)들

최근 글

[seaborn] 플롯과 데이터 구조

플롯과 데이터 구조 일반적으로 플롯은 지정된 x와 y에 대응하여 작성됩니다. 각 x와 y를 위해 seaborn 함수에 전달하는 데이터 구조에 따라 입력 형식에서 약간의 차이를 보입니다. DataFrame의 경우 모든 변수들이 열(column)로 배치되고 각 열이름이 하나의 변수를 나타내는 구조이기 때문에 x와 y에 열이름을 전달합니다. 그러나 행과 열이 연결되어 각 값들의 의미를 나타내는 경우 즉, pivot table과 같은 경우 x와 y는 각각 행이름이고 열이름이 됩니다. 이 경우 그래프 함수는 각 행에 대한 열을 x와 y를 암묵적으로 인식하여 그래프를 작성합니다. 이러한 관계를 다음 데이터 flight에 대해 figure-level 함수인 relplot(), catplot() 를 적용하여 알아봅니다( Figure-level과 Axes-level 함수 그리고 히스토그램 참조). import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.family'] ='NanumGothic' plt.rcParams['axes.unicode_minus'] =False import seaborn as sns flights=sns.load_dataset("flights") flights.head(3) year month passengers 0 1949 Jan 112 1 1949 Feb 118 2 1949 Mar 132 sns.set_theme() sns.relplot(data=flights, x="year

[seaborn] 다중 플롯 작성

다중 플롯 작성 Figure-level 함수 는 유사한 종류의 플롯을 작성할 수 있으므로 다른 종류 예를 들어 산점도와 히스토그램을 동시에 작성하기 위해서는 axes-level 함수를 사용해야 합니다. 또한 이 레벨의 함수는 matplotlib에 의존하므로 플롯의 레이아웃을 설정하기 위해 subplots() 함수를 적용할 수 있습니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.family'] ='NanumGothic' plt.rcParams['axes.unicode_minus'] =False import seaborn as sns pen=sns.load_dataset("penguins") fig, axs=plt.subplots(1,2, figsize=(8,3), gridspec_kw=dict(width_ratios=[4,3])) sns.scatterplot(data=pen, x="flipper_length_mm", y="bill_length_mm", hue="species", ax=axs[0]) sns.histplot(data=pen, x="species", hue="species", shrink=.8, alpha=.8, legend=False, ax=axs[1]) fig.tight_layout() 위 코드에서 plt.subplots() 함수의 인수 gridspec_kw는 각 subplots의 레이아웃에 대한 값들을 사전(dictionary)형식으로 지원하기 위한 매개변수입니다. figure-level 함수는 다른 종류의 그래프들로 구성된 다중 플롯을 작성 할 수 없습니다. 즉, 이 수준의 함수는 초기화를 포함하여 자신의 플롯을 독점적으로 소유하므로 위의 axes-level 함수

[seaborn] Figure-level과 Axes-level 함수 그리고 히스토그램

Figure-level과 Axes-level 함수 그리고 히스토그램 seaborn은 dataframe과 array에서 작동에서 작동하며 내부적으로 필요한 mapping과 통계적 집계를 수행하여 플롯을 작성합니다. seaborn의 함수들은 플롯을 작성하기 위해 기본적으로 matplotlib를 사용하므로 이 패키지의 형식에 의존지만 이 패키지와는 독자적으로 실행되는 실행되는 함수가 존재합니다. 이러한 함수는 figure-level function이라 하며 matplotlib와 연결되는 함수를 axes-level fuction으로 구분합니다. seaborn은 플롯팅 함수는 "관계형(relation)", "분포형(distribution)", "범주형(categorical)"으로 구분할 수 있습니다. 각각은 relplot(), displot(), catplot() 함수로 작성할 수 있습니다. 이 함수들은 figure-level 함수들로 다음 표와 같이 다양한 axes-level 함수들을 포함합니다. 형태 figure-level 함수 axes-level 함수 relation relplot scatterplot, lineplot distribution displot histplot, kdeplot, ecdfplot, rugplot categrorical catplot stripplot, swarmplot, boxplot, violineplt, pointplot, barplot 위에서 언급한 것과 같이 figure-level 함수는 matplotlib와 별개로 작성됩니다. 그러므로 이 함수들을 사용하는 경우 FacetGrid() 함수를 통해 레이아웃을 변경할 수 있습니다. 반면에 axes-level 함수는 axes 수준에서 플롯을 작성되며 matplotlib의 axes 수준을 따릅니다. 그러므로 plt.figure()에 의한 레이아웃의 변경이 이루어 집니다. 데이터 penguins를

삼각함수의 합, 차 그리고 곱에 대한 공식

삼각함수의 합, 차 그리고 곱에 대한 공식 내용 합과 차 공식 곱을 합으로 전환 합을 곱으로 전환 배각공식 반각공식 합과 차 공식 두 각에 대한 합 또는 차에 대해 식 1의 규칙이 성립합니다. \begin{align}&\sin(\alpha\pm\beta)=\sin(\alpha)\cos(\beta)\pm\cos(\alpha)\sin(\beta)\\\tag{식 1} &\cos(\alpha\pm\beta)=\cos(\alpha)\cos(\beta)\mp\sin(\alpha)\sin(\beta)\\ &\tan(\alpha\mp\beta)=\frac{\tan(\alpha) \pm \tan(\beta)}{1 \pm \tan(\alpha)\tan(\beta)} \end{align} 그림 1은 반지름 a인 원에 내접한 두 삼각형을 나타낸 것입니다. 그림 1. 반지름 a인 원에 내접한 두 삼각형. 그림 1의 원위의 점 A와 B는 각 α와 β에 대한 식 2와 같이 삼각함수로 나타낼 수 있습니다. \begin{align}\tag{식 2}\cos(\alpha)=\frac{x_1}{a}\quad \sin(\alpha)=\frac{y_1}{a}& \Rightarrow A(a\cos(\alpha),\,a\sin(\alpha)) \\ \cos(\beta)=\frac{x_2}{a}\quad \sin(\beta)=\frac{y_2}{a}& \Rightarrow B(a\cos(\beta),\,a\sin(\beta))\end{align} 그림 1의 원 내부에 존재하는 삼각형의 변 b의 길이를 계산하기 위해 cosine 2 법칙 과 적용합니다(식 3). \begin{align}\tag{식 3}b^2=a^2+a^2-a\cdot a·\cos(\alpha-\beta)=2a^2(1-\cos(\alpha-\beta))\end{align} 그림 1의 좌표 A, B를 각각 $\vec{A}, \vec{B}$로 간