load_dataset 메서드를 사용하여 데이터 집합을 불러올 수 있습니다.
- seaborn 라이브러리로 히스토그램을 그리려면 subplots, displot 메서드를 사용하면 됩니다
- subplots 메서드로 기본 틀을 만들어줍니다.
- distplot 메서드에 total_bill 열 데이터를 전달하면 히스토그램을 그릴 수 있습니다.
# 히스토그램 그리기
- distplot 메서드는 히스토그램과 밀집도 그래프를 같이 그려줍니다.
- 혹시라도 밀집도 그래프를 제외해서 그리고 싶다면 kde 인잣값을 False로 설정하면 됩니다.
* 밀집도 그래프는 주어진 데이터를 정규화시켜 넓이가 1이 되도록 그린 그래프입니다.
# 밀집도 그래프 그리기
- 밀집도 그래프만 나타내고 싶은 경우에는 hist 인자를 False로 지정하면 됩니다.
# 양탄자 그래프 그리기
- 보통 데이터 시각화를 사용할 때는 효율적으로 사용하기 위해 다양한 그래프를 한 번에 표시하곤 합니다.
- distplot 메서드에 rug 인자를 추가하여 히스토그램+밀집도+양탄자 그래프를 한 번에 그려보도록 하겠습니다.
* 양탄자 그래프는 그래프의 축에 동일한 길이의 직선을 붙여 데이터의 밀집 정도를 표현한 그래프입니다.
# count 그래프 그리기
- 이번에는 count 그래프를 그려보도록 하겠습니다.
* count 그래프는 이산값을 나타낸 그래프입니다.
# 산점도 그래프 그리기
- matploblib 라이브러리에서도 산점도 그래프를 그릴 수 있지만, seaborn 라이브러리를 사용하면 더욱 다양한 방법으로 산점도 그래프를 그릴 수 있습니다.
- seaborn 라이브러리의 regplot 메서드를 사용합니다. regplot 메서드를 사용하면 회귀선을 함께 그릴 수 있습니다.
회귀선을 제거하고 싶다면 fit_reg 인자를 False로 지정해주면 됩니다.
# 산점도 그래프와 히스토그램을 함께 그리기
- jointplot 메서드를 사용하면 산점도와 히스토그램을 함께 그릴 수 있습니다.
- x, y 인자에 원하는 열 이름을 지정하고 data 인잣값으로 데이터프레임을 지정하면 됩니다.
- joinplot 메서드도 그래프 이름과 x, y축 이름을 추가할 수 있습니다.
# 육각 그래프 그리기
- 산점도 그래프에서 점이 겹쳐 보일 경우 점을 구분하기 어렵다는 단점을 보완하기 위해 사용되는 그래프
- 2차원 표면에 육각형으로 데이터를 쌓아 표현합니다. 2차원 표면을 덮을 때 육각형이 가장 효과적이기 때문입니다.
- 특정 데이터의 개수가 많아지면 점점 진한 색으로 표현됩니다.
- joinplot 메서드를 그대로 사용하지만, kind 인잣값을 hex로 지정합니다.
# 이차원 밀집도 그리기
- 이차원 밀집도는 kdeplot 메서드로 만들 수 있습니다.
- shade 인잣값을 True로 지정하면 그래프에 음영 효과를 줄 수 있습니다.
# 바 그래프 그리기
- 바 그래프는 지정한 변수의 평균을 계산하여 그릴 수 있습니다.
- 시간에 따라 지불한 비용의 평균을 바 그래프로 나타내보았습니다.
# 박스 그래프 그리기
- 박스 그래프는 최솟값, 1분위수, 중간값, 3분위수, 최댓값, 이상치 등 다양한 통계량을 한 번에 표현할 수 있습니다.
# 바이올린 그래프
- 데이터 분산이 모호하게 표현되는 박스 그래프를 보완하기 위해 사용합니다.
- 박스 그래프에 커널 밀도를 추정한 그래프, 바이올린의 형상과 비슷해 바이올린 그래프라고 부릅니다.
- violinplot 메서드를 사용해서 그립니다.
# 관계 그래프 그리기
- 다양한 그래프를 종합한 그래프
- pairplot 메서드에 데이터프레임을 넣는 방법으로 간단하게 구현할 수 있습니다.
- 관계 그래프는 중복된 정보가 표현된다는 단점이 있습니다
- 중복되는 정보를 피하기 위해 중복된 그래프가 그려지는 위치를 직접 지정하여 원하는 그래프로 교체할 수 있습니다.
이번에는 중복된 그래프들을 다른 그래프로 바꾸어 보겠습니다
- map_upper 메서드를 사용하여 대각선을 기준으로 위쪽에 그릴 그래프를 지정합니다.
- map_lower 메서드는 대각선을 기준으로 아래쪽에 그릴 그래프를 지정합니다.
- map_diag는 대각선을 중심으로 그래프를 그릴 수 있습니다.
- regplot 산점도, kdeplot 이차원 밀집도, distplot 히스토그램/밀집도, rug 양탄자 그래프
1. seaborn 라이브러리를 이용하여 색상이 추가된 바이올린 그래프 그리기
- violinplot 메서드에 hue 인잣값을 넣어 색상에 사용할 열 이름을 추가하면 됩니다.
- split은 데이터를 분리할 것인가의 유무를 지정합니다.
- split을 True로 적용 시, 남녀별 그래프가 합쳐져서 나옵니다.
- split을 False로 적용 시, 각 lunch, dinner 별 남, 녀 그래프가 따로 표시됩니다.
2. 산점도, 관계 그래프를 색상을 넣어 그리기
- 색상 추가는 hue 인잣값에 색상을 넣고 싶은 열을 선택하면 됩니다.
- fit_reg를 False로 적용하면 회귀선이 제거됩니다.
3. 산점도 그래프의 크기와 모양을 조절하기
- 산점도 그래프의 점 크기를 조절하려면 scatter_kws에 딕셔너리 형태로 인잣값을 전달하면 됩니다.
- 여기서는 크기만 조절하기 위해 's':tips['size']를 딕셔너리에 담아 전달했습니다.
- 산점도 그래프의 점을 다른 기호로 표현하고 싶다면 markers 인잣값에 표현하고자 하는 기호를 리스트에 담아 전달하면 됩니다.
- markers : 점의 표시(marking) 방법을 list 형식으로 지정
4. lmplot 메서드로 4개의 데이터 그룹에 대한 그래프 한 번에 그리기
- fit_reg 인자는 회귀선의 유무를 지정하는 값입니다.
- x와 y 인자에는 앤스콤 데이터 집합의 x, y 열을 전달하고 data 인자에는 데이터프레임(anscombe)을 전달했습니다.
- 4개의 데이터 그룹이 한꺼번에 산점도 그래프로 그려진 것을 알 수 있습니다.
- 그룹별로 그래프를 나누어 그리려면 lmplot 메서드에 추가로 col, col_warp 인자를 설정해야합니다.
- col_wrap 인자에는 그래프를 그릴 열의 최댓값을 지정하고 col 인자에는 데이터 그룹을 구분할 열(dataset)을 지정해줍니다.
- col_wrap : 데이터 그룹을 그릴 열의 최대 수 지정. 그룹 수의 약수여야 됩니다.
★ FacetGrid 클래스를 이용하여 그룹별 그래프 그리기
- FacetGrid : 멀티 plot을 그리드 형식으로 그려주는 클래스
- rug 인자는 양탄자 그래프의 유무를 지정하는 값입니다.
이번엔 다변량 그래프를 그려보도록 하겠습니다.
산점도 그래프를 그리기 위해 scatter를 첫 번째 인자에 전달했습니다.
tips 데이터 집합의 day 열로 그룹을 구분하여 그래프를 그렸습니다.
- time, smoker 열을 사용하여 그래프를 그려보겠습니다.
- time과 smoker 열은 각각 2개의 값을 가지고 있습니다. Dinner / Lunch, Yes / No의 2행 2열의 격자가 만들어집니다.
- col, row 인잣값에 따라 smoker = Yes | time = Lunch 와 같은 방법으로 그래프를 구분합니다.
[참고자료]
(Data) seaborn (https://seaborn.pydata.org/)
(Book) Do it! 데이터 분석을 위한 판다스 입문 (Chen. Daniel Y 저) - 이지스퍼블리싱
|
'AI Big Data > pandas' 카테고리의 다른 글
seaborn 라이브러리를 이용하여 그래프 스타일 설정하기 (0) | 2020.07.10 |
---|---|
데이터프레임과 시리즈를 이용해서 그래프 그리기 (0) | 2020.07.09 |
matplotlib 라이브러리 사용하기 (0) | 2020.07.09 |
앤스콤 4분할 그래프 살펴보기 (0) | 2020.07.09 |
그래프 그리기 (0) | 2020.07.09 |