- ChatGPT에는 Data Analysis가 탑재되어 있습니다.
- Code Interpreter로 불리던 기능으로, Python 프로그램을 작성하고 실행합니다.
- ChatGPT Data Analysis에서 데이터를 시각화할 때 한글을 사용하는 법을 알아봅니다.
1. ChatGPT에서 데이터 불러오기
- ChatGPT는 웹 검색을 할 수 있습니다.
- 가장 보편적인 데이터 분석용 예제 중 하나인 펭귄 데이터셋을 가져오라고 합니다.
- Data Analysis가 자동으로 실행됩니다.
- 왜인지 실패합니다.
- 현재 환경으로는 외부 URL에 접속할 수 없다고 하네요.
(I’m unable to access external URLs directly from my current environment) - 이유를 알아보기 위해 ChatGPT의 동작을 제어하는 system prompt를 확인합니다.
- 몇 가지 중요 정보가 있습니다.
- Jupyter Notebook 환경에서 실행된다는 것,
- 60.0초 뒤에 time out된다는 것,
- 그리고 Data Analysis에서는 Internet Access가 막혀있다는 점입니다.
- 따라서 파일 다운로드를 포함한 외부 web request도 막혀있고 API call도 안 됩니다.
- 이번에는 Web Browsing을 이용해서 펭귄 데이터셋을 가져오라고 시켜 봅니다.
- 역시 못한다고 합니다.
- 대신 파일 링크를 주며 다운받아 올려달라고 하네요.
- 기꺼이 다운받아 올려줍니다.
- 파일을 올리고 세 가지 일을 함께 시킵니다.
1. 파일 내용을 보여주고 df_penguins라는 이름의 pandas DataFrame으로 저장
2. 데이터셋의 다섯 줄을 보여달라
3. 데이터 요약 내용을 보여달라.
2. ChatGPT에서 데이터 시각화하기
- 데이터 중
body_mass_g
분포를 히스토그램으로 표현하라고 지시합니다. - 그림 크기도 4 x 3 inch로 지정합니다.
- 기대대로 그림이 출력되었습니다.
- 그런데 당연하게도 영문으로 출력되었습니다.
- 제목을 한글로 바꿔봅시다.
- 펭귄 체중 분포로 바꿔달라고 했는데 글자가 깨져버립니다.
- 너무나 당연하지만 한글 글꼴이 설치되지 않았기 때문입니다.
- 글꼴을 업로드하고 사용하라고 할 수 있지만 연달아 제대로 동작하지 않습니다.
- 일회성으로 폰트를 업로드해 그림에 한글을 삽입할 때와는 다른 상황입니다.
- Python의 가장 기본격인 시각화 라이브러리는 Matplotlib이며 Data Analysis도 이를 사용합니다.
- 안정적으로 Matplotlib을 한글화하는 koreanize-matplotlib을 사용합니다.
- .whl file을 다운받아 대화창에 올리고 환경 설정을 지시합니다.
- 글꼴을 개별적으로 올렸을 때 발생할 수 있는 오류가 예방됩니다.
3. ChatGPT에서 데이터 시각화 수정하기
PyCon Korea 2022: 혼란한 Matplotlib에서 질서 찾기
Matplotlib: Anatomy of a figure
- 데이터 시각화는 기본값으로 실행한 초안으로 끝나지 않습니다.
- 적절한 요소를 더하고 빼면서 수정해야 합니다.
- 먼저 크게 두 가지만 수정합시다.
1. 모든 글꼴 크기를 절반으로 줄이고
2. 히스토그램 색을 오렌지색으로 변경합니다.
- 해당 명령을 위처럼 간단히 내리지 못하고 복잡하게 내려야만 했습니다.
- title, xlabel, ylabel, xtick label, ytick label, edgewidth, facecolor라는 용어를 사용합니다.
- 그래프가 Matplotlib으로 그려졌기 때문에 Matplotlib에서 사용하는 요소명으로 지시하는 것입니다.
- PyCon Korea 2022: 혼란한 Matplotlib에서 질서 찾기에서 말씀드린 내용 그대로입니다.
- 각 부위의 이름은 Anatomy of a figure에서 참고할 수 있습니다.
- 내친 김에 그림을 조금 더 바꿔봅니다.
- 모든 테두리를 보이도록 하고, grid를 가리고, 눈금의 방향을 밖으로 향하게 합니다.
- ChatGPT의 답변 맨 아래에 있는 링크를 클릭하면 최종 코드를 볼 수 있습니다.