如何善用 ChatGPT 輔助資料分析與視覺化工作?-(四)Python/Colab 協作資料輸入並產出視覺化圖表

Python x Colab x Data Visualization

· ChatGPT,Python,Google Colab
broken image

※ 作者:彭其捷(https://www.visualization.tw/

ps. 以下是本網站 ChatGPT 系列文章,有興趣的話可一併參考:

前言

由於現在的 ChatGPT 版本,屬於對話型 AI 工具,還無法直接輸出資料視覺化圖表(但... 未來就不一定了);本篇是想透過 ChatGPT 輸入指定 CSV 檔案資料集,並請求其輸出 python 程式碼,並丟到 Colab (雲端程式碼執行環境)產出資料視覺化;以下是本文章完全「只」依賴 ChatGPT 所生成的資料視覺化圖表,來源是我提供的 .csv 檔案,下方有對應操作過程,有興趣的人也可嘗試看看。

 

broken image

※圖:透過 ChatGPT + CSV 檔案輸出的資料視覺化

 

ps. 本文會使用到 colab 工具(可線上執行 Python 的環境),相關 ChatGPT 丟出來的程式碼成果,可於此看到:https://colab.research.google.com/drive/1NrrRG9qEyI46aH-rC-cvr8xZINrezQMH?usp=sharing

 

Step1:連結到 CSV 格式資料集

本次預計使用 Big Mac Index - 大麥克指數資料集進行示範教學(資料來源:Kaggle

大麥克指數(Big Mac Index)是一個由經濟學家發明用來衡量不同國家貨幣匯率與物價的指標。這個指標的計算方法是以麥當勞速食店中的大麥克漢堡價格作為基準,比較不同國家的大麥克漢堡價格之間的差異,是一個有趣和易於理解的指標。

 

ps. 本次主要想測試,透過 ChatGPT 連結 CSV 資料,資料集連結:https://docs.google.com/spreadsheets/d/111Gd7TLJAjv2N_9VlF3xFzVWqSDbTkJuXeBy9hIl6vc/edit#gid=1041795518

broken image

※圖:原始資料來源:Kaggle(https://www.kaggle.com/datasets/mrmorj/big-mac-index-data

Step2:寫 Prompt

以下請 ChatGPT 寫語法,來使用大麥克指數資料,並透過 python 語言繪製出最高的前十名國家長條圖,使用的 prompt 如下(最後一句必須包括 drive.google 要加,不然產出語法常常讀不到資料):

Prompt|請你用這份連結中的資料 https://drive.google.com/file/d/1V-T2u8kSqKItLViiDQCrAOKZsLgA_cqD/view?usp=sharing ,撰寫一段 python 可以執行的資料視覺化語法,生成「date」欄位值是「2020-07-01」的資料中「dollar_price」最高的「name」長條圖排行榜,X軸是「dollar_price」,Y軸是「name」由最高到最低,圖表標題為「2020 Top 10 Big Mac Index」。網址,必須包括 drive.google

broken image

ps. 以上相關的程式碼,都可以在 Colab 上看到。

此外,ChatGPT 也有提供針對此段程式碼的解說。

broken image

Step3:開啟 Colab

生成 python 語法後,接著開啟 Google Colab (

https://colab.research.google.com/ ),跳出對話視窗之後,可點選「新增筆記本」。

ps. Google Colab 是一個線上程式碼執行環境,如果不了解相關的基礎,可參閱相關的文章或影片,推薦閱讀:https://www.youtube.com/watch?v=OyS6K2XdgbQ&t=734s

broken image

進入 Colab 運作環境後,建議可以先將檔案進行命名

broken image

 

Step4:新增一個程式碼段落

在 Google Colab 新增一個程式碼段落執行看看(點+ 程式碼),從 ChatGPT 複製語法,貼上到 Google Colab 的窗格中

這裡想確認,真的可以透過生成的程式碼,讀取 Google Drive 的資料,並產出圖表嗎?

broken image

Step5:在 Colab 按下執行

接下來,可點選左方的播放按鈕, 順利成功產出我們想要的 2020 大麥克指數最高的國家排行榜長條圖囉!雖然圖表有點陽春 ~ 但真的可以讀到資料!而且真的透過我們的自然語言指令,在 input 的 CSV 當中執行了「排序」與「過濾指定年度」的數據分析行為!

broken image

 

broken image

Step6:嘗試請 ChatGPT 優化資料視覺化

預設產出的長條圖,比較陽春一點,如果我們來嘗試不一樣的視覺效果呢?先直接問問看 ChatGPT,能否幫我們美化呢?

Prompt|能否請你根據以上的指令,修改為更好看,更美觀,設計感更強的圖表語法呢?

broken image

也確實得到了一段程式碼,同樣可在 Colab 看到這段透過 ChatGPT 修改過的程式碼。

broken image

執行後,似乎真的有得到「感覺更好看(?)」的圖表(ps. 視覺的東西很主觀,這個留給讀者自行判斷即可),但確實有相對於原版多了一點視覺修飾。

broken image

Step7:決定請 ChatGPT 再給一次結果看看

因爲前一個步驟結果不錯,決定再試一次看看!

Prompt|能否請你根據以上的指令,修改為更好看,更美觀,設計感更強的圖表語法呢?

 

broken image

 

broken image

同樣執行看看

broken image

 

提供的結果類似,雖然有 Bug 出現,不過也有呈現結果。

broken image

 

Step8:試試看用自然語言描述「風格」給 ChatGPT 聽

玩到這裡,突然又好奇,ChatGPT 是否能夠協助解譯自然語言對於「風格」的描述呢?在實驗之前是覺得有點困難的

Prompt|呈上,可否幫忙用日本國旗的配色,來調整資料視覺化的呈現呢?

 

取得的程式碼放在 Colab 上。結果的呈現跟前面是類似的,確實改成了日本國旗的配色,但由於日本國旗的顏色只有紅色跟白色,也導致有些 Bar 沒有顏色。

broken image

因為考量日本國旗顏色太少顏色,我們來試試看比較多顏色的國旗,例如烏克蘭國旗。

Prompt|呈上,可否幫忙用烏克蘭國旗的配色,來調整資料視覺化的呈現呢?


取得的程式碼放在 Colab 上,結果如下:

broken image

 

結語

本次的實驗是成功的,確實可以透過 ChatGPT 取得雲端上的 .csv 檔案,並根據 input 給予對應的程式碼,也確實可以在 Colab 上面執行,很有趣!若您對我的其他實驗也感興趣,歡迎閱覽以下文章:

 

ps. 我的 ChatGPT / 資料視覺化線上課程

文末小工商,如果您對於 ChatGPT 與圖表等主題感興趣,歡迎可以參考我的線上課程:

broken image

 

broken image