brunch

You can make anything
by writing

C.S.Lewis

by 류한석 Mar 06. 2024

효과적인 데이터 스토리텔링, “시각화 생성기” 패턴

시각화로 인사이트 찾기

당신의 마음이 볼 수 있다면, 당신은 할 수 있다.


"시각화 생성기(Visualization Generator)" 패턴은 대형언어모델을 이용해 시각적 이미지 형태로 정보를 표현하는 방법입니다. 비주얼라이제이션, 즉 시각화는 데이터, 정보, 지식을 그래프, 차트, 지도, 인포그래픽 등 시각적 요소를 사용하여 표현하는 것을 뜻합니다.


시각화를 통해 비즈니스 인텔리전스, 시장 분석, 전략 수립 등 다양한 분야에서 복잡한 데이터를 시각적 이미지로 변환함으로써, 데이터 내 숨겨진 패턴(반복되는 형태, 구조, 일련의 규칙), 추세, 상관관계 등을 더 쉽게 파악할 수 있습니다.


프롬프트 예시로 살펴보죠.



프롬프트


#입력

- 제품명: Product A, Product B, Product C, Product D

- 시장 점유율(%): 20, 35, 45, 10

- 시장 성장률(%): 5, 15, 10, 3


#처리

회사의 제품 포트폴리오를 분석하려고 합니다. 상단의 입력을 기반으로, 산점도(Scatter Plot)를 생성해 주세요. 이 그래프는 임원 회의에서 회사의 자원 배분을 최적화하는 데 필요한 인사이트를 얻기 위한 것입니다.


#출력

- 그래프 제목은 "Product Portfolio Matrix"로 설정합니다. 

- X축은 "Market Share (%)"로, Y축은 "Market Growth (%)"로 설정합니다.

- 각 제품명을 범례로 표시합니다.


챗GPT(GPT-4)



이번 프롬프트는 GPT-4에서만 작동합니다. 현시점에서 GPT-3.5, 클로바, 제미나이는 이러한 시각화 생성기 패턴을 제대로 지원하지 않습니다. 참고로, 현재 GPT-4에서 기본적으로 이미지에 한글 표시가 제대로 안 되어 제품명과 그래프 텍스트에 영어를 사용했습니다. 번거로운 작업을 통해 한글 표시가 가능하긴 합니다만, 조만간 모델 업데이트로 가능해질 수도 있기에 해당 방법은 추후 필요하면 살펴보겠습니다.


예시에서 모델의 응답을 보면, 사용자가 제공한 데이터와 명령을 이해한 후, 이를 토대로 파이썬 코드를 작성하고 적절한 그래프를 생성했습니다.


예시에서 입력 부분은 사용자 데이터로, 특정 형식이나 구조로 표현될 수 있습니다. 여기서는 제품명과 두 가지 주요 지표(시장 점유율 및 성장률)를 사용합니다. 처리 부분에서는 데이터를 이용해 산점도를 생성하라고 지시합니다. 출력 부분에서는 그래프의 출력 형식을 지정합니다. 여기에서는 그래프의 제목, X축, Y축, 범례를 지정했는데, 만일 사용자가 이 같은 내용을 구체적으로 지정하지 않으면 모델이 알아서 생성해 줄 것입니다.


예시에서는 산점도라는 특정 시각화 형태를 지정했는데, 시각화 생성기 패턴에서 생성할 수 있는 시각화에는 막대 차트, 선 차트, 파이 차트, 버블 차트, 레이더 차트, 게이지 차트, 박스 플롯, 히스토그램, 히트맵, 트리맵, 네트워크 다이어그램 등 다양한 형태가 가능합니다.


시각화 생성기 패턴의 기본 문구는 다음과 같습니다.


“[데이터]를 기반으로, [지침]을 반영하여 [시각화 형태]를 생성해 주세요.”


기본 문구는 단순합니다. 추가로 시각화 목적, 이용자를 명시해 주면 더 나은 시각화가 가능합니다. 만일 데이터는 준비되어 있는데 어떤 시각화를 지시해야 할지 잘 모르겠다면, 다음과 같이 적절한 시각화를 추천해달라고 모델에게 요청하는 것도 좋은 방법입니다.



프롬프트


#입력

- 제품명: Product A, Product B, Product C, Product D

- 시장 점유율(%): 20, 35, 45, 10

- 시장 성장률(%): 5, 15, 10, 3


#처리

당신은 “시각화(Visualization) 전문가”로 행동합니다. 당신은 고급 데이터 시각화 기술을 보유한 전문가로, 다양한 데이터 세트를 분석하고 이를 통해 인사이트를 추출하여 명확하게 전달하는 역할을 맡고 있습니다. 데이터에서 의미 있는 결론을 도출하여, 데이터 기반 의사결정을 지원하는 것이 당신의 목표입니다.

## 상단의 입력 데이터를 이용해 당신이 생성할 수 있는 모든 시각화 형태를 알려주세요.

## 그 중에서 당신이 가장 추천하는 시각화를 이용해 이미지를 생성해 주세요.


#출력

[시각화]

[설명]


챗GPT(GPT-4)


이 입력 데이터는 제품별 시장 점유율과 시장 성장률을 나타내므로 다양한 시각화 형태로 분석할 수 있습니다. 이 데이터 세트에서 의미 있는 결론을 도출하기 위해 다음과 같은 시각화 형태를 고려할 수 있습니다:

1. 막대 차트(Bar Chart): 제품별 시장 점유율을 나타내는 데 적합합니다. 각 제품의 시장 점유율을 쉽게 비교할 수 있습니다.

2. 원형 차트(Pie Chart): 전체 시장에서 각 제품의 점유율을 비율로 보여주는 데 유용합니다. 이는 시각적으로 직관적이지만, 많은 카테고리가 있을 경우 비교하기 어려울 수 있습니다.

3. 선 차트(Line Chart): 시간에 따른 시장 성장률의 변화를 보여주는 데 적합합니다. 하지만, 이 경우에는 시간 데이터가 없으므로 적합하지 않을 수 있습니다.

4. 히스토그램(Histogram): 시장 성장률의 분포를 보여주는 데 사용할 수 있지만, 이 경우에는 제한된 데이터 포인트가 있어 적합하지 않을 수 있습니다.

5. 스캐터 플롯(Scatter Plot): 시장 점유율과 성장률 간의 관계를 탐색하는 데 적합합니다. 각 제품을 하나의 점으로 나타내어 두 변수 간의 관계를 시각화할 수 있습니다.


가장 추천하는 시각화는 스캐터 플롯입니다. 스캐터 플롯을 사용하면 제품별 시장 점유율과 성장률을 동시에 나타내며, 이 두 변수 간의 관계를 직관적으로 파악할 수 있습니다. 제품이 시장에서 얼마나 잘 수행되고 있는지, 그리고 성장 잠재력이 있는지 쉽게 식별할 수 있습니다.


이제 제품 이름을 x축에 성장률을, y축에 시장 점유율을 나타내는 스캐터 플롯을 생성하겠습니다. 각 제품을 점으로 나타내고, 점의 크기를 시장 점유율의 크기로 조정하여 더 큰 점유율을 가진 제품이 더 큰 점으로 표시되게 할 것입니다. 이를 통해 제품별 시장 위치와 성장률을 한눈에 파악할 수 있습니다.



위 스캐터 플롯은 각 제품의 시장 점유율과 성장률을 동시에 나타냅니다. x축에는 성장률을, y축에는 시장 점유율을 표시하였고, 각 제품은 점으로 나타내며, 점의 크기는 시장 점유율의 크기를 반영합니다. 이로써 더 큰 점유율을 가진 제품이 더 큰 점으로 표시되어, 제품별 시장 위치와 성장률을 한눈에 파악할 수 있습니다. 


이 시각화를 통해, 제품 B와 C가 시장에서 상대적으로 높은 점유율과 성장률을 보이며, 특히 제품 C가 가장 높은 시장 점유율을 가지면서도 높은 성장률을 유지하고 있음을 알 수 있습니다. 반면, 제품 D는 낮은 시장 점유율과 성장률을 보여, 시장에서의 위치가 상대적으로 약함을 나타냅니다. 이러한 분석은 기업이 자원 배분과 전략 수립에 있어 데이터 기반의 의사결정을 지원합니다.


스캐터 플롯=산점도입니다. 모델과 대화 시 사용자가 용어를 명확히 지정하지 않으면, 모델이 임의로 이름을 부여하는 경향이 있습니다. 특히, 원래 용어가 외국어일 경우 그렇습니다.


정리하면, 시각화 생성기 패턴은 단순히 그래픽을 만드는 것 이상의 가치를 제공합니다. 데이터는 그 자체로는 단순한 숫자와 통계에 불과하지만, 시각화를 거쳐 보다 명확하고 통찰력 있는 결정을 내릴 수 있는 기반이 되어 줍니다.


시각화 생성기 패턴은
데이터를 통해 이야기를 들려주는 강력한 방법입니다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari