edwith_python_(14)lineplot으로 판매 데이터 시각화하기
Updated:
edwith 부스트코스 파이썬으로 시작하는 데이터 사이언스 를 공부하는 과정입니다.
지난 포스트 edwith_python_(13)데이터 전처리하기
6. K-Beauty 시각화
6.1 전체 상품군 판매액
“판매유형별” 데이터는 일부 기간에 대해 “계”만 존재하므로, “계” 데이터만 df_total 변수에 담기(면세점, 면세점 외 데이터는 제외)
df_total = df[df["판매유형별"] == "계"].copy()
df_total.head()
*결과*
국가(대륙)별 | 상품군별 | 판매유형별 | 기간 | 백만원 | 연도 | 분기 | |
---|---|---|---|---|---|---|---|
48 | 미국 | 컴퓨터 및 주변기기 | 계 | 2014 1/4 | 2216.0 | 2014 | 1 |
51 | 미국 | 가전·전자·통신기기 | 계 | 2014 1/4 | 2875.0 | 2014 | 1 |
54 | 미국 | 소프트웨어 | 계 | 2014 1/4 | 47.0 | 2014 | 1 |
57 | 미국 | 서 적 | 계 | 2014 1/4 | 962.0 | 2014 | 1 |
60 | 미국 | 사무·문구 | 계 | 2014 1/4 | 25.0 | 2014 | 1 |
연도별 판매액을 linplot으로 나타내기
sns.lineplot(data=df_total, x="연도", y="백만원")
*결과*
연도별 판매액을 “상품군별”로 구분하여 linplot으로 나타내기
sns.lineplot(data=df_total, x="연도", y="백만원", hue="상품군별")
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
*결과*
plt.legend( ~~) : 범례값의 위치 지정
그래프 그리는 함수 뒤에 작성해야 적용됨
위에 그린 그래프를 자세히 보기 위해 서브플롯으로 나타내기
sns.relplot(data=df_total, x="연도", y="백만원", hue="상품군별", kind="line", col="상품군별", col_wrap=4)
*결과*
화장품 판매액이 다른 상품군에 비해 너무 커서 그래프 비교가 어려움
isin 을 사용하여 “화장품”과 “의류 및 패션관련 상품” 만 제외하여 df_sub이라는 변수에 담아서 다시 서브플롯 나타내기
df_sub = df_total[~df_total["상품군별"].isin(["화장품", "의류 및 패션관련 상품"])].copy()
sns.relplot(data=df_sub, x="연도", y="백만원", hue="상품군별", kind="line", col="상품군별", col_wrap=3)
*결과*
6.2 화장품의 온라인쇼핑 해외직접판매액
“상품군별”이 “화장품”인 데이터만 df_cosmetic이라는 변수에 담기
df_cosmetic = df_total[df_total["상품군별"] == "화장품"].copy()
df_cosmetic.head()
*결과*
국가(대륙)별 | 상품군별 | 판매유형별 | 기간 | 백만원 | 연도 | 분기 | |
---|---|---|---|---|---|---|---|
72 | 미국 | 화장품 | 계 | 2014 1/4 | 3740.0 | 2014 | 1 |
117 | 중국 | 화장품 | 계 | 2014 1/4 | 32235.0 | 2014 | 1 |
162 | 일본 | 화장품 | 계 | 2014 1/4 | 1034.0 | 2014 | 1 |
207 | 아세안(ASEAN) | 화장품 | 계 | 2014 1/4 | 398.0 | 2014 | 1 |
252 | EU | 화장품 | 계 | 2014 1/4 | 937.0 | 2014 | 1 |
“연도”와 판매액을 “분기”로 구분하여 lineplot으로 나타내기
sns.lineplot(data=df_cosmetic, x="연도", y="백만원", hue="분기")
*결과*
화장품 판매액에 대한 기간별 금액 데이터 시각화 하기
plt.figure(figsize=(15,4))
plt.xticks(rotation=30)
sns.lineplot(data=df_cosmetic, x="기간", y="백만원")
*결과*
화장품 판매액이 꾸준히 증가한 것을 확인할 수 있음
plt.xticks(rotation= 30): x축 값을 30도로 회전하여 나타내기
화장품 판매액에 대한 기간별 금액 데이터를 “국가(대륙)별”로 구분하여 시각화 하기
plt.figure(figsize=(15,4))
plt.xticks(rotation=30)
sns.lineplot(data=df_cosmetic, x="기간", y="백만원", hue="국가(대륙)별")
*결과*
중국에 대한 판매액이 크게 증가해 온 것을 확인할 수 있음
화장품 판매액에 대한 기간별 금액 데이터를 “국가(대륙)별”로 구분하되, “중국”은 제외하고 시각화 하기
plt.figure(figsize=(15,4))
plt.xticks(rotation=30)
sns.lineplot(data=df_cosmetic[df_cosmetic["국가(대륙)별"] != "중국"], x="기간", y="백만원", hue="국가(대륙)별")
*결과*
아세안(초록색) 판매액이 최근 급성장한 확인할 수 있음
화장품 판매액에 대한 기간별 금액 데이터를 “판매유형별”로 구분하여 시각화 하기
plt.figure(figsize=(15,4))
plt.xticks(rotation=30)
df_sub = df[df["판매유형별"] != "계"].copy()
sns.lineplot(data=df_sub, x="기간", y="백만원", hue="판매유형별", ci=None)
*결과*
판매유형별 데이터는 raw data에 2017년부터 존재하므로, 그래프가 2017년부터 그려짐
6.3 의류 및 패션관련 상품 온라인쇼핑 해외직접판매액
의류 데이터만 df_fashion 이라는 변수에 담아주기
df_fashion = df[(df["상품군별"] == "의류 및 패션관련 상품") & (df["판매유형별"] == "계")].copy()
df_fashion.head()
*결과*
국가(대륙)별 | 상품군별 | 판매유형별 | 기간 | 백만원 | 연도 | 분기 | |
---|---|---|---|---|---|---|---|
66 | 미국 | 의류 및 패션관련 상품 | 계 | 2014 1/4 | 9810.0 | 2014 | 1 |
111 | 중국 | 의류 및 패션관련 상품 | 계 | 2014 1/4 | 12206.0 | 2014 | 1 |
156 | 일본 | 의류 및 패션관련 상품 | 계 | 2014 1/4 | 13534.0 | 2014 | 1 |
201 | 아세안(ASEAN) | 의류 및 패션관련 상품 | 계 | 2014 1/4 | 3473.0 | 2014 | 1 |
246 | EU | 의류 및 패션관련 상품 | 계 | 2014 1/4 | 1364.0 | 2014 | 1 |
“의류 및 패션관련 상품”에 대해 “기간”별 판매액을 “국가(대륙)별”로 구분하여 시각화하기
plt.figure(figsize=(10,4))
plt.xticks(rotation=30)
sns.lineplot(data=df_fashion, x="기간", y="백만원", hue="국가(대륙)별")
*결과*
중국 판매액이 꾸준히 증가한 것을 확인할 수 있음
“의류 및 패션관련 상품”에 대해 “기간”별 판매액을 “판매유형별”로 구분하여 시각화하기
df_fashion2 = df[(df["상품군별"] == "의류 및 패션관련 상품") & (df["판매유형별"] != "계")].copy()
plt.figure(figsize=(10,4))
plt.xticks(rotation=30)
sns.lineplot(data=df_fashion2, x="기간", y="백만원", hue="판매유형별", ci=None)
*결과*
면세점 판매액보다 면세점 이외 판매액이 대체로 높았으나, 최근에는 면세점 판매액이 면세점 이회 판매액과 비슷한 규모로 성장함
.
.
다음 포스트 edwith_python_(15)pivot_table, heatmap, lineplot으로 판매 데이터 시각화하기
Leave a comment