import plotly.express as px
df = px.data.tips()
df.sample(3)| total_bill | tip | sex | smoker | day | time | size | |
|---|---|---|---|---|---|---|---|
| 42 | 13.94 | 3.06 | Male | No | Sun | Dinner | 2 |
| 3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
| 41 | 17.46 | 2.54 | Male | No | Sun | Dinner | 2 |
Plotly Box Plot만들기
gabriel yang
September 18, 2023
Plotly Box Plot 만드는 방법을 정리합니다. 데이터는 레스토랑의 tip정보를 저장한 tips를 사용합니다.
| total_bill | tip | sex | smoker | day | time | size | |
|---|---|---|---|---|---|---|---|
| 42 | 13.94 | 3.06 | Male | No | Sun | Dinner | 2 |
| 3 | 23.68 | 3.31 | Male | No | Sun | Dinner | 2 |
| 41 | 17.46 | 2.54 | Male | No | Sun | Dinner | 2 |
total_bill 컬럼은 지출한 금액이고 tip은 지출한 팁을 표시하는 것 같습니다. 다음으로 고객의 다양한 특징을 표현하는 컬럼정보와 함께 지출했던 시간 정보가 있습니다. 우선 total_bill의 데이터 분포를 확인하기 위해서 Boxplot을 그려봅니다. 혹시 데이터프레임에 정보가 없는 영역이 있는 지 확인합니다. NaN인 경우 true로 표시하는 isnull()함수의 합계가 모두 0이기 때문에 데이터에 문제가 없습니다.
Box plot으로 의미있는 데이터를 얻기위해서 위해서 숫자형 데이터가 필요합니다. total_bill, tip, size는 숫자형 데이터임을 알 수 있습니다.
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 244 entries, 0 to 243
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 total_bill 244 non-null float64
1 tip 244 non-null float64
2 sex 244 non-null object
3 smoker 244 non-null object
4 day 244 non-null object
5 time 244 non-null object
6 size 244 non-null int64
dtypes: float64(2), int64(1), object(4)
memory usage: 13.5+ KB
total_bill에 대한 Box plot정보를 표시합니다.
가로로 그래프로 표시할 경우 데이터를 전달하는 축을 x로 변경하여 전달합니다.
x축에 요일 정보를 추가해서 Box Plot 결과를 확인합니다. Q1, Q3, 중앙값이 표시됩니다. upper fance와 lower fance를 벗어나는 데이터는 이상치로 생각될 수 있습니다. 40달러 이상의 경우 이상치로 표시되고 있습니다. 저녁식사에 비용이 더 많이 발생했음을 쉽게 알 수 있습니다.
smoker에 따른 tip차이를 확인하기 위해서 color에 smoker를 전달합니다. x축의 각 요일에 표시되는 tip정보에 smoker정보가 추가되었습니다.
이번엔 facet_col을 이용해서 sex정보에 따라서 서로다른 그래프 영역으로 표시합니다. x축을 day로 변경하고 y축을 tip으로 변경해서 요일별 tip비용을 time에 따라 그래프를 독립적으로 생성합니다.
주말에는 팁이 저녁 식사에 발생했고 토요일에는 이상치가 많이 발생했습니다. 점심식사는 목요일과 금요일에 주로 발생했고 금요일은 점심과 저녁 모두 팁이 발생하는 특징이 있습니다.
| Date | Title | Author |
|---|---|---|
| Aug 18, 2024 | Folium에서 Google Map 사용 방법 | gabriel yang |
| Aug 16, 2024 | Folium의 Choropleth 지도 | gabriel yang |
| Aug 15, 2024 | Folium 마커 생성과 색상 변경하기 | gabriel yang |
| Oct 8, 2023 | Plotly line, shape 그리기 | gabriel yang |
| Oct 5, 2023 | Plotly Funnel(깔대기) 차트 만들기 | gabriel yang |
| Oct 4, 2023 | Plotly 차트의 축 tick 회전 및 폰트 변경하기 | gabriel yang |
| Oct 3, 2023 | Plotly 불릿차트 | gabriel yang |
| Oct 2, 2023 | Plotly Hover 설정하기 | gabriel yang |
| Sep 30, 2023 | Plotly Axis 포멧 변경하기 | gabriel yang |
| Sep 28, 2023 | Plotly 마커 모양 변경하기 | gabriel yang |
| Sep 25, 2023 | Plotly Time Series 날짜 범위 UI 사용하기 | gabriel yang |
| Sep 22, 2023 | Plotly Line Plot만들기 | gabriel yang |
| Sep 21, 2023 | Plotly Histogram Plot만들기 | gabriel yang |
| Sep 18, 2023 | Plotly Animation 만들기 | gabriel yang |
| Sep 17, 2023 | Plotly Treemap 만들기 | gabriel yang |
| Sep 17, 2023 | Plotly Bubble chart 만들기 | gabriel yang |
| Sep 13, 2023 | Plotly Subpolt 만들기 | 양성모 |