기본 콘텐츠로 건너뛰기

Claude에서 데이터 시각화 방법[팁][23-Claude AI 로 블로깅하고 책쓰기]

 데이터 시각화 [팁]

데이터 분석에서 시각화가 차지하는 비중과 중요성은 아무리 강조해도 지나치지 않습니다. 방대하고 복잡한 데이터 속에 숨겨진 패턴과 인사이트를 한눈에 파악할 수 있게 해주는 것이 바로 시각화의 힘입니다. 아무리 정교한 분석 모델을 동원했다 하더라도, 그 결과를 효과적으로 전달하지 못한다면 데이터 분석의 가치는 반감될 수밖에 없습니다.

그런데 문제는 데이터 시각화 자체가 전문적인 영역이라는 것입니다. 다양한 시각화 도구와 라이브러리를 익히고, 목적에 맞는 차트와 그래프를 선택하여 구현하는 일은 결코 쉽지 않습니다. 특히 데이터 분석가로서는 통계 지식은 있지만, 코딩 스킬이 부족한 경우가 많아 시각화 작업에 어려움을 겪곤 합니다.

이런 상황에서 Claude와 같은 AI 도구는 데이터 시각화에 획기적인 솔루션을 제시합니다. 비록 Claude 자체에 시각화 기능이 내장되어 있지는 않지만, 분석가가 의도한 시각화 결과물을 자연어로 설명하기만 하면 Claude가 이를 구현할 수 있는 파이썬 코드를 자동 생성해주기 때문입니다.

여기서 Claude가 파이썬 코드를 활용하는 이유는 무엇일까요? 그것은 파이썬이 데이터 분석과 시각화에 가장 최적화된 언어이기 때문입니다. Matplotlib, Seaborn, Plotly 등 강력한 시각화 라이브러리를 기본으로 제공하고, Pandas, Numpy 등을 통해 데이터 핸들링도 손쉽게 할 수 있어 데이터 분석가들이 가장 선호하는 언어로 자리매김했습니다.

그러나 파이썬의 장점에도 불구하고 프로그래밍 문법을 익히고 라이브러리 사용법을 학습하는 일은 분석가에겐 부담이 될 수밖에 없었습니다. 바로 이런 간극을 메워주는 것이 Claude입니다. 분석가가 "2022년 월별 매출 추이를 선 그래프로 나타내줘" 라고 요청하기만 하면 Claude가 이를 구현하는 파이썬 코드를 생성해주는 식이죠.

Claude를 통해 자연어로 시각화를 지시하면, 매번 차트 유형을 고민하거나 복잡한 코드를 작성할 필요가 없습니다. 데이터 속성에 맞는 적절한 그래프와 차트를 제안 받을 수 있고, 색상, 레이블, 사이즈 등 세부 사항도 자연어로 조정할 수 있습니다. 마치 그래픽 전문가에게 의뢰하듯 간단한 지시만으로 원하는 시각화 결과물을 얻을 수 있게 되는 것이죠.  

이는 분석가의 업무 효율성을 획기적으로 높여줄 뿐 아니라, 더 나은 시각화 결과물 도출에도 기여합니다. 수동 코딩에 소요되던 시간과 노력을 아낄 수 있어 더 다양한 시각화 아이디어를 실험할 수 있게 되고, 이는 곧 인사이트 발견 확률을 높이는 선순환으로 이어지기 때문입니다.

물론 Claude가 제안한 파이썬 코드를 무비판적으로 활용해서는 안 될 것입니다. 분석가로서 시각화의 기본 원리는 알고 있어야 하고, 때로는 코드를 수정하거나 기능을 추가해야 할 수도 있습니다. 그러나 학습의 과정에서도 Claude는 좋은 조력자가 되어줄 것입니다. 자연어로 궁금한 점을 물으면 친절하게 설명해주고 예제 코드도 만들어주니까요.

이처럼 Claude는 파이썬이라는 강력한 시각화 도구의 진입 장벽을 크게 낮춰주는 혁신적인 솔루션입니다. 누구나 자연어 대화만으로 손쉽게 파이썬 시각화 코드를 생성하고, 그 결과를 바로 활용할 수 있게 된 것이죠. 덕분에 데이터 분석의 마지막 단계인 시각화에서 느끼던 부담감에서도 자유로워질 수 있게 되었습니다.

앞으로 Claude와 같은 AI 도구는 데이터 기반 의사결정의 필수 요소인 시각화 작업에서 점점 더 큰 역할을 담당하게 될 것입니다. 단순히 그래프를 그려주는 수준을 넘어, 전달하고자 하는 메시지에 맞는 최적의 시각화 방식을 제안하고 구현해주는 인텔리전트한 방향으로 진화할 것이기 때문이죠.

데이터 분석의 최종 목적은 데이터에서 추출한 인사이트를 의사결정에 반영하고 실행에 옮기는 것입니다. 그 과정의 핵심에는 항상 효과적인 소통과 설득이 자리하고 있죠. 그리고 그 소통과 설득의 중심에는 언제나 시각화가 있습니다. Claude는 바로 그 시각화의 힘을 모두가 쉽게 활용할 수 있도록 만들어주는 데이터 분석의 든든한 파트너인 셈입니다.

가상의 시나리오를 통해 데이터를 시각화하는 과정을 살펴보겠습니다.

(시나리오)

모바일 게임 개발사 A의 데이터 분석가 John은 신규 게임 이용자들의 행동 패턴 분석 보고서를 작성하고 있습니다. 게임 내 각종 이벤트 참여와 구매 행위 간의 상관관계를 분석한 결과, 흥미로운 인사이트를 발견했습니다. 이를 보고서에 시각화해서 넣고 싶지만 막상 코딩은 자신이 없었죠.

John은 우선 시각화하고 싶은 내용을 정리하여 Claude에게 다음과 같이 요청합니다.

프롬프트: "분석 결과에 따르면 이벤트 A에 참여한 신규 이용자들의 구매 금액이 비참여자들에 비해 50% 이상 높았습니다. 이벤트 A의 효과를 보여주는 막대그래프를 만들어 주시겠습니까? x축은 신규 이용자 그룹(참여자 vs 비참여자)을 나타내고, y축은 첫 주 평균 구매액을 나타내도록 해주세요. 영문 레이블을 사용하여 Python 코드를 생성해 주시기 바랍니다.”

Claude는 John이 원하는 시각화를 위한 파이썬 코드를 다음과 같이 생성해 줍니다.

import matplotlib.pyplot as plt

import numpy as np

labels = ['이벤트 A 참여', '이벤트 A 비참여']

purchase_amounts = [15000, 9000]

x = np.arange(len(labels))

width = 0.35

fig, ax = plt.subplots(figsize=(8, 5))

rects = ax.bar(x, purchase_amounts, width)

ax.set_title('신규 이용자의 이벤트 A 참여 여부에 따른 첫 주 평균 구매액', fontsize=16)

ax.set_ylabel('첫 주 평균 구매액 (원)', fontsize=12)

ax.set_xticks(x)

ax.set_xticklabels(labels)

def autolabel(rects):

    for rect in rects:

        height = rect.get_height()

        ax.annotate(f'{height:,}',

                    xy=(rect.get_x() + rect.get_width() / 2, height),

                    xytext=(0, 3),

                    textcoords="offset points",

                    ha='center', va='bottom')

autolabel(rects)

fig.tight_layout()

plt.show()

위 파이썬 코드를 실행한 결과입니다.

John은 Claude가 제안한 코드를 실행해보고 놀라움을 금치 못했습니다. 불과 1~2줄의 자연어 설명만으로 그가 머릿속으로 그려왔던 바로 그 차트가 만들어진 것입니다. 막대의 높이 차이로 이벤트의 효과성이 명확하게 드러났고, 평균 구매액까지 깔끔하게 표기되어 있었습니다. .

이에 고무된 John은 분석 보고서에 몇 가지 차트를 더 추가하기로 마음먹었습니다.

프롬프트: "이벤트 A 참여자 중에서도 구매액이 가장 높은 상위 5% 고객들의 특성이 궁금해. 이 VIP 고객들의 성별, 연령대, 접속 기기별 비중을 파이 차트를 그려주세요. 영문 레이블을 사용하여 Python 코드를 생성해 주시기 바랍니다”

John의 추가 요청에 Claude는 금세 파이 차트용 파이썬 코드를 만들어 냅니다. gender_labels, gender_sizes 등의 변수명까지 John의 요구사항에 맞게 알아서 지정하는 센스도 보여주었습니다.

import matplotlib.pyplot as plt

gender_labels = ['남성', '여성']

gender_sizes = [60, 40]

age_labels = ['10대', '20대', '30대', '40대 이상']

age_sizes = [15, 30, 45, 10]

device_labels = ['Android', 'iOS', 'PC']

device_sizes = [50, 45, 5]

fig, axs = plt.subplots(1, 3, figsize=(12, 4))

axs[0].pie(gender_sizes, labels=gender_labels, autopct='%1.1f%%')

axs[0].axis('equal')

axs[0].set_title('성별 분포')

axs[1].pie(age_sizes, labels=age_labels, autopct='%1.1f%%')

axs[1].axis('equal')

axs[1].set_title('연령대 분포')

axs[2].pie(device_sizes, labels=device_labels, autopct='%1.1f%%')

axs[2].axis('equal')

axs[2].set_title('접속 기기 분포')

plt.suptitle('VIP 고객(상위 5%) 속성별 분포', fontsize=16)

plt.tight_layout()

plt.show()

이 파이쎤 코드를 실행한 결과입니다.

John은 Claude가 제시한 코드를 그대로 실행했고, 결과는 대성공이었습니다. 간결하지만 인사이트가 잘 드러나는 파이 차트 3개가 보고서의 완성도를 한층 높여주었습니다.

John의 경험은 데이터 시각화에서 AI 도구가 어떤 역할을 할 수 있을지 잘 보여줍니다. 분석가가 원하는 차트의 요건만 자연어로 명확하게 전달하면, 나머지 코딩은 Claude와 같은 AI가 도맡아 하는 것이죠. 덕분에 분석가는 파이썬 문법을 공부하는 대신 시각화 아이디어를 더 고민할 수 있게 됩니다.

물론 Claude가 만들어준 코드도 무조건 완벽한 것은 아닙니다. 항상 결과물을 꼼꼼히 확인하고, 필요할 때는 직접 수정해야 할 것입니다. 또한 분석가 스스로도 기본적인 시각화 역량은 갖춰야겠죠. 하지만 그 과정에서도 Claude의 조언은 분명 큰 도움이 될 것입니다.  

앞으로 Claude와 같은 AI 도구들은 그래프의 유형을 추천하고, 색상 팔레트를 제안하는 등 데이터 스토리텔링 전반에서 분석가들의 든든한 조력자가 되어줄 것입니다. 지루하고 복잡한 차트 작성 과정을 단순화함으로써, 분석가들이 보다 창의적인 시각화에 도전할 수 있는 환경을 조성해줄것입니다.


Python 코드로 그래프 및 차트 그림 생성



import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns

from plotly import graph_objects as go


# 랜덤 데이터 생성

factories = ['A', 'B', 'C', 'D', 'E']

hours = list(range(1, 11))

production_data = pd.DataFrame({'Factory': np.repeat(factories, 10),

                                'Hour': hours * 5,

                                'Production': np.random.randint(50, 100, 50),

                                'Defect_Rate': np.random.rand(50),

                                'Utilization': np.random.rand(50)})


# 꺾은선 그래프 - 생산량 추이

plt.figure(figsize=(10, 6))

for factory in factories:

    data = production_data[production_data['Factory'] == factory]

    plt.plot(data['Hour'], data['Production'], marker='o', label=factory)

plt.xlabel('Hour')

plt.ylabel('Production')

plt.title('Production Trend by Factory')

plt.legend()

plt.show()


# 히트맵 - 불량률의 시공간적 패턴

defect_rate_matrix = production_data.pivot_table(index='Factory', columns='Hour', values='Defect_Rate')

plt.figure(figsize=(10, 8))

sns.heatmap(defect_rate_matrix, annot=True, cmap='YlGnBu', fmt='.2f', linewidths=0.5)

plt.title('Defect Rate Heatmap')

plt.show() 


# 게이지 차트 - 가동률 현황

utilization_data = production_data.groupby('Factory')['Utilization'].mean().reset_index()

utilization_data['Utilization'] = utilization_data['Utilization'] * 100  # 백분율로 변환


fig = go.Figure()


for i in range(len(utilization_data)):

    fig.add_trace(go.Indicator(

        mode = "gauge+number",

        value = utilization_data.iloc[i]['Utilization'],

        domain = {'x': [0.2*i, 0.2*(i+1)], 'y': [0, 1]},

        title = {'text': utilization_data.iloc[i]['Factory']},

        gauge = {

            'axis': {'range': [None, 100], 'tickwidth': 1, 'tickcolor': "darkblue"},

            'bar': {'color': "darkblue"},

            'bgcolor': "white",

            'borderwidth': 2,

            'bordercolor': "gray",

            'steps': [

                {'range': [0, 60], 'color': 'lightgray'},

                {'range': [60, 100], 'color': 'gray'}],

            'threshold': {

                'line': {'color': "red", 'width': 4},

                'thickness': 0.75,

                'value': 90}}))


fig.update_layout(height=400, width=1000, title_text="Factory Utilization Rate")

fig.show()



댓글

이 블로그의 인기 게시물

[알아두면 쓸모 있는 구글 문서 팁] 문서 공유시- 사용자 이름 대신에 익명의 동물이 표시 되는 이유와 동물 종류

구글 드라이브에는 다른 유사 서비스에서는 제공하지 않는 구글 만의 유니크한 기능들이 있다 구글 문서를  불특정 다수에게 전체 공개로 공유할 수 있습니다. 불특정인이 구글 문서에 접속한 경우 익명의 동물로 표시됩니다.  ' 웹에 공개' 또는 '링크가 있는 사용자' 공유 설정을 선택하면 인식할 수 없는 이름이나 익명의 동물이 표시될 수 있습니다. 파일에서 인식할 수 없는 이름을 볼 수 있는 몇 가지 이유는 다음과 같습니다. 메일링 리스트와 파일을 공유합니다. Google 계정이 없는 사용자와 파일을 공유하며, 그 사용자가 다른 사용자에게 공유 초대를 전달했습니다. 내 파일을 수정할 수 있는 누군가가 파일을 다른 사용자와 공유했습니다. 다른 사용자가 자신의 Google 계정 이름을 변경했습니다. 공유 설정 페이지에서 해당 사용자 이름 위로 마우스를 이동하여 이메일 주소를 확인하세요. 익명의 동물 다른 사용자에게 개별적으로 보기 또는 수정 권한을 부여하거나 메일링 리스트에 속해 있는 경우에만 사용자 이름이 표시됩니다. 파일 권한을 '링크가 있는 사용자'로 설정하면 파일을 보고 있는 사용자의 이름이 표시되지 않습니다. 대신 다른 사용자가 익명으로 라벨이 지정되어 표시되고 각 익명 사용자는 다양한 익명의 동물로 나열됩니다. 파일 권한을 '링크가 있는 사용자'로 설정했지만 특정 사용자와 파일을 공유하는 경우 파일을 공유한 사용자의 이름이 표시됩니다. 그 외 다른 사용자가 파일을 볼 때는 익명으로 나타납니다. 비공개 파일의 익명 동물 파일 권한을 '링크가 있는 사용자'로 설정한 다음 이를 '특정 사용자'로 변경하면 다음과 같은 경우 여러 익명의 동물이 표시될 수 있습니다. 누군가 파일을 여러 번 여는 경우에는 익명의 동물 목록에서 오래되고 연결이 끊긴 세션을 강제 종료하는 데 조금 시간이 걸릴 수 있습니다. 누군가 온...

[팁] Google Slide 프리젠테이션시 모든 한글폰트가 '굴림체' 로 바뀌는 현상을 해결한 크롬 확장 프로그램 소개

구글 문서도구인 구글 슬라이드를 이용하여 프리젠테이션을 많이 하는 분들을 위한 희소식 현재 구글 슬라이드에서는 슬라이드 편집시 사용한 고유 한글 폰트들은 프리젠테이션 모드로 전환할 경우는 모두 '굴림체' 로 바뀌어 표시가 되는 불편함이 있었습니다. 예). 슬라이드 편집에서 사용한 '궁서체' 한글 폰트는, 프리젠테이션 모드에서는 '굴림체'로 바뀌어 디스플레이됨 예). 슬라이드 편집 모드 - '궁서체' 폰트 사용 프리젠테이션 모드에서 '굴림체' 로 변경됨    따라서, 이러한 현상을 해결하는 크롬 확장 프로그램이 개발 되었습니다.  크롬 확장 프로그램 명 - ShowAsis 입니다. 크 롬 웹스토어 링크 -  https://goo.gl/PVPkZz 이 확장 프로그램을 사용하여 슬라이드 프리젠테이션을 하면, 편집 모드의 폰트 그대로 프리젠테이션시에도 그대로 한글 폰트로 디스플레이 됩니다. 단, 단점은 슬라이드가 애니메이션 슬라이드가 있는 경우는 애니메이션이 동작하지 않습니다. ----------------------- G Suite/Google Apps 전문 블로그 -  charlychoi.blogspot.kr 도서 '기업과 학교를 위한 구글크롬북'

구글 드라이브에서 내 파일이 갑자기 사라졌어요 [알아두면 쓸모 있는 구글 드라이브 팁]

  구글 드라이브에서 고아가 된(정리 되지 않은)  파일들에 대한 현상 및 복원 방법 및 공유 드라이브 활용 목차  배경 내 파일이나 폴더가 사라지고 (삭제된 것은 아님) 찾을 수 없는 현상 고아가 된 파일 (정리가 안된 파일) 을 찾아 내고 복원하는  방법 고아가 된 과정을 추적하는 방법 배경   구글 드라이브의 내 드라이브에서 협업을 위한 협업 폴더를 생성한 후 다른 팀원간들간에 공유하여 작업하는 동안 예기치 못하게 내가 생성한 파일들 또는 폴더가 갑자기 사라지는 현상이 발생 할 수 있습니다. 또한 이를 경험한 사용자들이 많이 있습니다.  내가 파일이나 폴더를 삭제하지 않았는데 불구하고 휴지통에도 없고, 내가 삭제한 기억도 없고, 이러한 현상이 발생할 경우에는 본 벡서서에서 설명하는 해당 폴더나 파일들이 ‘고아 (Orphaned)’ 가 된 상태가 되어있는게 분명합니다.  한글 도움말에는 ‘정리가 되지 않은 파일 (또는 분리가 된 파일)' 이라고 설명되어 있기도 합니다. 고아가 된 파일들은 어떠한 폴더에도 속하여 있지 않고, 내 휴지통에도 존재하지 않는 현상입니다. 그러나, 구글 드라이브에서는 용량을 계속 차지 않고 있는 상태입니다. 간혹 왜? 내가 삭제한 적이 없는데 파일이 없어졌거나 폴더가 보이질 않는 경우 당황하지 않고 이문서를 자세히 참조하면 해답을 찾을 수 있습니다.   내 파일이나 폴더가 사라지고 (삭제된 것은 아님) 찾을 수 없는 현상      1. 내 드라이브에서 Folder A를 생성하고 Folder A 안에 File A 를 생성 합니다. 나중에 File A를 삭제 하고, 그 이후에 Folder A 까지 삭제를 할 수 있습니다. 그후 휴지통에서 File A만 복원을 할 경우 삭제된 File A 를 복원하려고 하는데 File A가 존재하였던 상위 폴더 ‘Folder A’는 이미 삭제된 상태입니다. 이럴때 File A는 ...

[알아두면 쓸모 있는 구글 Meet 팁] 구글 Meet에서 컴패니언 (Companion) 모드가 무엇이고 왜? 필요한가요?

  구글 Meet 에서 컴패니언 (Companion) 모드란 무엇이고 왜? 필요한가 지난 1월13일자  구글 영문 공식 블로그 에서  구글의 화상회의 도구인 Google Meet 에 컴패니언 (Companion) 모드 기능이 추가 되었다는 발표가 있었습니다. 이 모드가 무엇이고 왜? 필요한지 알아보도록 하겠습니다. 여러분들은 구글의 대표적인 화상회의 도구인 Google Meet 로 화상 회의를 얼마나 자주 하나요? Google Workspace 에 기본 기능으로 포함되어 있는 Google Meet 는 코로나19 펜데믹 이후로 많은 기업에서 활용하고 있을 것입니다. 그동안 한 회의실에서 여러명이 모여 화상 회의를 하는 경우 대부분은 하나의 노트북을 대표로 지정하고 나머지 참석자들은 노트북 주변에 모여서 회의 (비디오+음성)를 하거나, 아니면 각자의 노트북으로 화상 회의에 연결한 후 마이크를 mute 를 하여 참여해야만 하는 불편함이 있었습니다. (이유는 한 회의실안에서 화상회의시 여려명이 마이크를 On 하면 소위 하울링 또는 Audio Feedback 현상이 발생하기 때문)   구글은 Google Meet 로 화상 회의시 이러한 불편함을 없애기 위해서 소위 컴패니언 모드 기능을 추가하였습니다. 즉, 한 회의실에서 여러명이 회의에 참여할 경우 하나의 컴퓨터 또는 Google Meet 전용 하드웨어인 화상회의 기기를 메인으로 연결하고 나머지 참여자들은 각자의 노트북에서 컴패니언 모드로 접속 할 수 하도록 한 것입니다. 즉, 컴패니언 모드로 접속한 사용자는 자동으로 오디오와 비디오는 Off 가 나머지 기능들만 활성화 (화면공유, 손들기, 다른 참여자와 채팅, 자막 사용) 되어 회의에 참여 할 수가 있게 되었습니다. 이 기능은 개인 gmail 사용자 뿐만아니라 Google Workspace 의 모든 사용자들이 사용할 수 있게 업데이트 되었습니다. Google Meet 로 화상 회의에 참여 할 경우 컴패니언 모드로 접속을 하는 방법에는 ...

구글닥스에 파일 업로드 할 수 있는 방법

구글닥스에 파일 업로드 할 수 있는 방법 구글닥스는 구글에서 제공하는 클라우드 컴퓨팅 어플중에서 대표적인 어플이다. 사용자는 데스트탑의 별도의 설치된 어플 없이도 표준 브라우져만을 이용하면,  Anytime, Anywhere, Anydevice(Win/Mac/Linux/ChromeOS) 에서 문서를 작성하고 뷰잉 및 검색이 가능한 것이 가장 큰 매력이다. 그동안 구글닥스에는 로컬 폴더나 외장형 스토리지에 존재하는 문서들을 업로드하기 위해서는 구글 닥스의 문서도구 "업로드" 를 통해서만 그리고, 대표적인 오피스 문서 포맷들(PDF, Doc, Docx, Ppt, Pptx, Xls, Xlsx, Rtf, Csv, Txt, Odt, Sxw) 만을 올릴수 있었다. 최근에 이러한 업로드 기능을 대폭 확장을 하여, 새로운 기능이 추가 되었다. 그동안 위에서 명시한 오피스 문서 포맷들 만을 업로드 한것을 포함하여, 이번에는 임의의 파일들(예, ZIP, EXE, any file 들)을 업로드 할 수 있는 기능이 추가된 것이 큰 특징이다. 아울러, 업로드 되는 파일 크기의 제약도 예전에는 DOC 파일은 500KB, PDF는 10M 정도 크기까지만 올릴수 있었으나, 이번에 향상된 기능에서는 각 파일의 크기를 1GB 까지 업로드 할 수 있게 확장이 되었이 되었다. 구글닥스의 스토리지(무료 Gmail  계정인 경우, 구글닥스에서는 1GB 까지 저장가능)가 허용하는 한 파일들을 저장할 수 있다. 여기서 몇가지 로컬 폴더에 있는 문서들을 업로드 할 수 있는 몇가지 방법들을 설명하고자 한다. 1. 기존 방법 - 문서도구의 '업로드' (아래 화면 참조) 기능을 통해서 파일 개별적으로 또는 일괄 선택에 의해서 업로드 가능   주의 할 점은 업로드시 오피스 문서가 아닌 일반 파일들인 경우는 위 화살표 부분을 uncheck 를 해서 업로드를 해야 한다. 2. 구글의 Desktop 가젯을 이용하여 편리하게 업로드 하는 방법    - 구글에서는 윈도우 PC...