DATA VISUALIZATION #1

codataffee·2024년 5월 10일
0

DATA

목록 보기
9/22
post-thumbnail

개요

데이터로 설득하기 위해서는 데이터를 잘 전달해야 하고,
데이터를 잘 전달하기 위한 방법 중 하나가 시각화


📌 데이터 시각화


  • 표와 그림 중 어떤 것이 더 알아보기 쉽고 빠르게 전달이 될까..?

📌 목적

  • 패턴 발견 및 이해
    데이터 시각화는 데이터 내의 숨겨진 패턴을 발견하고 이해하는 데 도움을 줌.
  1. 시간에 따른 매출 추이 분석:
    • 시간(월, 분기, 연도 등)에 따른 매출 추이를 선 그래프로 시각화하면, 매출의 계절적 변동이나 특정 시기의 매출 증감 패턴을 쉽게 파악할 수 있습니다. 이를 통해 특정 시기에 매출이 감소하는 이유나 증가하는 이유를 이해할 수 있습니다.
  2. 지역별 매출 비교 분석:
    • 지도를 이용하여 지역별 매출을 시각화하면, 각 지역의 매출 패턴을 파악할 수 있습니다. 지역 간의 매출 차이나 특정 지역에서의 매출 높은 이유를 이해할 수 있습니다.
  3. 제품 카테고리별 매출 분석:
    • 막대 그래프나 원형 차트를 사용하여 제품 카테고리별 매출을 시각화하면, 어떤 카테고리가 가장 많은 매출을 올리는지 파악할 수 있습니다. 이를 통해 인기 있는 제품 카테고리를 파악하거나, 특정 카테고리의 성장세를 이해할 수 있습니다.
  4. 고객 구매 패턴 분석:
    • 히스토그램이나 상자 그림(Box Plot)을 사용하여 고객의 구매 패턴을 시각화하면, 평균 구매액, 최고/최저 구매액, 이상치 데이터 등을 파악할 수 있습니다. 이를 통해 고객들의 구매 습관이나 행동을 이해할 수 있습니다.
  • 의사 결정 지원
    시각화는 복잡한 데이터를 이해하고 결정을 내리는 데 도움을 줌.
  1. 마케팅 캠페인 효과 분석:
    • 시간에 따른 매출 또는 고객 유입량의 변화를 추적하는 선 그래프를 사용하여, 마케팅 캠페인을 실행한 시점 이후의 변화를 확인할 수 있습니다. 이를 통해 마케팅 캠페인이 실제로 기업의 매출 또는 고객 유입에 어떤 영향을 미치는지를 시각적으로 확인할 수 있습니다.
  2. 캠페인 채널별 효과 비교:
    • 막대 그래프나 원형 차트를 사용하여 각 마케팅 캠페인 채널(소셜미디어, 이메일, 광고 등)별로 매출이나 고객 획득량을 비교할 수 있습니다. 이를 통해 어떤 채널이 가장 효과적인지 판단하고, 자원을 최적으로 분배할 수 있습니다.
  3. 고객 반응 분석:
    • 히스토그램이나 상자 그림을 사용하여 특정 마케팅 캠페인에 참여한 고객들의 반응을 분석할 수 있습니다. 고객들의 평균 구매액 증가, 반응 시간의 변화 등을 시각화하여 캠페인의 효과를 좀 더 깊이 있게 이해할 수 있습니다.
  4. A/B 테스트 결과 시각화:
    • A/B 테스트 결과를 바탕으로 한 그래프를 통해, 다른 버전의 마케팅 캠페인이나 웹페이지 등의 변화가 어떻게 고객 행동에 영향을 미치는지 확인할 수 있습니다. 이를 통해 어떤 디자인 또는 콘텐츠가 더 효과적인지를 시각적으로 확인할 수 있습니다.
  • 효과적인 커뮤니케이션
    시각화는 데이터 분석 결과를 다른 사람들과 공유하거나 설명할 때 유용.
  1. 보고서와 프레젠테이션:
    • 다양한 차트, 그래프, 히트맵 등을 사용하여 데이터 분석 결과를 시각적으로 나타내면 보고서나 프레젠테이션을 더 효과적으로 구성할 수 있습니다. 이를 통해 빠르고 명확하게 데이터의 핵심 내용을 전달할 수 있습니다.
  2. 의사 결정자와의 논의:
    • 데이터 시각화를 통해 의사 결정자들과의 논의를 용이하게 할 수 있습니다. 시각적인 그래프나 차트를 보여주면 의사 결정자들이 데이터를 더 쉽게 이해하고 빠르게 의사 결정을 할 수 있습니다.
  3. 다양한 대중에게의 정보 전달:
    • 쉽게 이해할 수 있는 그래픽을 사용하여 데이터 분석 결과를 블로그, 보고서, 뉴스레터 등을 통해 다양한 대중에게 전달할 수 있습니다. 이를 통해 보다 많은 사람들에게 데이터에 대한 인사이트를 제공할 수 있습니다.
  4. 소셜미디어 및 인터넷 활용:
    • 효과적인 데이터 시각화는 소셜미디어 상에서 데이터 기반의 이야기를 공유하는 데 유용합니다. 인포그래픽, 그래픽 이미지 등을 활용하여 복잡한 데이터를 간결하게 전달하여 더 많은 관심을 끌 수 있습니다.
  5. 간결하고 효과적인 커뮤니케이션:
    • 시각화를 통해 데이터의 핵심을 간결하게 전달할 수 있으며, 이를 통해 복잡한 정보를 시각적으로 이해하기 쉽게 만들어줍니다. 이는 전문가와 비전문가 모두가 쉽게 이해하고 의사 소통을 할 수 있게 돕습니다.

📌 Matplotlib

  • 파이썬에서 시각화를 위한 라이브러리 중 하나,
    다양한 종류의 그래프를 생성하기 위한 도구 제공
    • 2D 그래픽 생성에 주로 사용
    • 선, 막대, 히스토그램, 산점도, 파이차트 등 다양한 시각화 방식 지원
    • 색상, 스타일, 레이블, 축 범위 등 조절해 원하는 형태로 시각화 가능

matplotlib.pyplot

  • plot() 함수 : 2차원 데이터를 시각화하기 위해 사용

import matplotlib.pyplot as plt
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 선 그래프 그리기
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Example Plot')
plt.show()

📌 Matplotlib 폰트 깨짐 오류

Matplotlib에서 한글 깨짐 문제가 일어나는 이유?

  • matplotlib에서는 한글 폰트를 지원하지 않기 때문

해결 방법

  • 사용중인 OS에서 한글 폰트 찾기
    • 윈도우 : "C:\Windows\Fonts" 폴더
    • 맥 : "/Library/Fonts" 폴더
  • 지원하는 폰트 찾아 설정
    • 윈도우 : "malgun.ttf" 혹은 "NanumBarunGothic.ttf" 등을 사용
    • 맥 : "AppleGothic.ttf" 등을 사용

폰트 설정 방법

import matplotlib.pyplot as plt
plt.rcParams['font.family'] ='Malgun Gothic'
plt.rcParams['axes.unicode_minus'] =False

경로 지정 방법 (윈도우)

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 나눔글꼴 경로 설정
font_path = 'C:/Windows/Fonts/NanumGothic.ttf'
# 폰트 이름 가져오기
font_name = fm.FontProperties(fname=font_path).get_name()
# 폰트 설정
plt.rc('font', family=font_name)

경로 찾기
보통 폰트는 c드라이브>windows>Fonts>내 존재
윈도우 창에 font 검색해서 글꼴 들어가기 - 원하는 글꼴 검색 - 경로 찾아서 들어가기 방법

원하는 글꼴 찾기

  • 글꼴 선택 후 글꼴 파일의 경로 확인
  • 속성의 경로 복사

    주의할 점, python에서는 \가 1개이면 인식하지 않으므로 \이렇게 1개씩 더 추가
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 휴먼편지체 경로 설정
font_path = '‪C:\\Windows\\Fonts\\HMFMPYUN.TTF'
# 폰트 이름 가져오기
font_name = fm.FontProperties(fname=font_path).get_name()
# 폰트 설정
plt.rc('font', family=font_name)

맑은고딕체

휴먼편지체

  • 해결 성공!

📌 그래프 그리기 (도구)

  • 그래프를 그리기 위해 필요한 도구 (축, 범례, 스타일, 텍스트)

.

Matplotlib.pyplot 에서 plot() 를 활용하는 법

pandasplot() 메서드는 DataFrame 객체에서 데이터를 시각화하는데 사용
예를 들어, 선 그래프를 그리기 위해서는 plot() 메서드를 호출해
x와 y 인수에 각각 x축과 y축에 해당하는 열을 지정하면 된다.

import pandas as pd
import matplotlib.pyplot as plt
# 샘플 데이터프레임 생성
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1]
}
df = pd.DataFrame(data)
# 선 그래프 그리기
df.plot(x='A', y='B')
plt.show()

.

스타일 설정하기

plot() 메서드를 호출할 때 다양한 스타일 옵션을 사용해 그래프 스타일 설정 가능
color, linestyle, marker 등의 파라미터로 선의 색상, 스타일, 마커를 변경할 수 있다.

ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o')
plt.show()
  • Color (색상) :
    색상은 문자열로 지정할 수 있으며, 'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white'와 같은 기본 색상 이름 또는 RGB 값을 직접 지정할 수 있다.

  • Linestyle(선 스타일):
    선의 스타일은 '-'(실선), '--'(대시선), ':'(점선), '-.'(점-대시선) 등으로 지정할 수 있다.

  • Marker(마커):
    마커는 데이터 포인트를 나타내는 기호로,
    'o'(원), '^'(삼각형), 's'(사각형), '+'(플러스), 'x'(엑스) 등 다양한 기호로 지정할 수 있다.

.

범례 추가하기

legend() 메서드를 활용해 그래프의 범례 추가 가능

#1 label
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o', label='Data Series')
#2 legend
ax.legend(['Data Series'])
#1번 또는 2번 방법으로 범례를 추가할 수 있습니다.
plt.show()

.

축, 제목 입력하기

set_xlabel(), set_ylabel(), set_title() 메서드를 사용하여
x축과 y축의 레이블 및 그래프 제목을 추가

ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Title of the Plot')

.

텍스트 추가하기

text() 메서드 사용, 그래프 특정 위치에 텍스트 추가

ax.text(3, 3, 'Some Text', fontsize=12)

.

한 번에 설정하기

  • plot() 함수에 color, linestyle, marker, label 등의 파라미터로 스타일과 범례를 적용
  • xlabel(), ylabel(), title(), legend(), text() 함수들을 사용하여 각각의 설정을 추가
    - plot() 함수 자체로 범례, 제목, 텍스트를 직접적으로 입력하는 기능은 내장되어 있지 않다.
import matplotlib.pyplot as plt
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 그래프 그리기
plt.plot(x, y, color='green', linestyle='--', marker='o', label='Data Series')
# 추가 설정
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Title of the Plot')
plt.legend()
plt.text(3, 8, 'Some Text', fontsize=12)  # 특정 좌표에 텍스트 추가
# 그래프 출력
plt.show()

.

그래프 크기 바꾸기

  • plt.figure() 함수를 사용하여 Figure 객체를 생성하고,
    이후에 figsize 매개변수를 이용하여 원하는 크기로 설정할 수 있음
  • figsize는 그래프의 가로와 세로 크기를 inch(인치) 단위로 설정
import matplotlib.pyplot as plt
# Figure 객체 생성 및 사이즈 설정
plt.figure(figsize=(3, 2))  # 가로 3인치, 세로 2인치
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 그래프 그리기
plt.plot(x, y)
# 그래프 출력
plt.show()

profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보