python의 다양한 시각화 라이브러리 중 seaborn을 사용해봤다
기본적인 barplot, scatterplot, boxplot 등은 생략했다
시각화를 잘하려면 많이보고 어떤 것들이 가능한지 많이 아는 것이 중요한 것 같다.
seaborn example gallary를 참조하면서 잘 알아두자
seaborn에서 기본적으로 제공하는 tips데이터를 사용해 예시를 만들었다.

x, y축에 각 값을 작은 막대로 찍어 데이터의 분포를 보여준다.
sns.rugplot(data=df, #DataFrame for plot
x,y,hue # input data for plotting
)

예시처럼 해당하는 축에 위치에 맞도록 작은 막대를 만들어준다.
당연하게도 numeric data만 된다
histogram을 그리면서 rug와 kde 밀도를 같이 표현할 수 있다.
sns.distplot(x,
kde=True, # 밀도함수 표현
rug=True # rug 표현
)

kde와 rug는 따로 만들수도 있다. seaborn에서 지원한다.
카테고리 별로 데이터가 얼마나 있는지 표시해준다
sns.countplot(x=, #column name
data= # dataframe
)

언뜻 보고 히스토그램과 무슨차이가 있나 싶었다. 히스토그램은 해당 범위의 모든 구간이 값이 없더라도 표시가된다. 하지만 countplot은 값이 0인 구간(카테고리)이 있으면 표시하지 않는다.
데이터 변수가 여러개인 다차원 데이터는 다음과 같은 종류가 있을 수 있다.
데이터가 모두 연속적인 실수라면 scatterplot을 사용해보자. 일반 scatterplot()을 쓸 수도 있고 jointplot을 사용하여 산포도 뿐 아니라 차트 가장자리에 각변수의 히스토그램도 그릴 수 있다.
jointplot 공식 Document 참조
sns.jointplot(x,y, # input data for plotting
data= , # dataframe
kind= # 어떤 그래프를 그릴거니?
)


만약 3차원 이상의 데이터라면 pairplot을 통해 grid형태로 각 데이터 행열 조합에 대해 시각화를 한다. 3개 이상의 축으로 시각화를 하는 것은 특별한 경우가 아니라면 지양한다.
모든 값이 카테고리이면 heatmap을 이용해보자
sns.heatmap(data=df, # dataframe
cmap= , # color map
annot=True, # 각 칸에 값 쓸건지?
fmt= , # 각 칸에 들어가는 숫자 형식
cbar=True, # 우측에 색깔별 값과 일치하는 바 만들건지?
)

데이터가 2차원이고 실수와 카테고리가 섞여있을때도 다양한 분포 플롯을 이용할 수 있다.
4 ~ 6은 모두 비슷하지만 다른모양으로 그려준다.
그리고 모든 플롯은 hue옵션을 통해 카테고리별로 다르게 그려준다.
barplotboxplotviolinplotstripplotswarmplotsns.stripplot(x, y, data, # input data
jitter=True # 데이터 수가 많을 경우 가로축 상에서 겹치지 않도록 함
)


stripplot과 swarmplot은 매우 유사하지만 jitter차이
swarmplot은 항상 겹치지 않게 옆으로 퍼지게 그려준다

크게 다르지않다. 바이올린 모양으로 그려준다
categorical plot의 줄임말로 보임.
scatter처럼 점을 찍는데 카테고리별로 적당한 위치에 찍어준다
import seaborn as sns
sns.catplot(data=DataFrame, # pandas df
x,y,hue='', # inputs for plotting data
order=list, # a list of strings
palette=p, # colors to use
...
)
