如何善用 ChatGPT 輔助資料分析與視覺化工作?-(一)基本問答篇

Using ChatGPT for Data Analysis & visualization

· 資料視覺化,ChatGPT
broken image

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

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

近期 AI 工具的進步,對人類許多面向的輔助進步神速,其中以 ChatGPT 為知名度最高的一款,透過簡單對話,即可輔助內容產出。本文希望初步探討,在資料分析或是視覺化領域中,可以有哪些面向能夠與 ChatGPT 進行搭配呢?

ps. 本文難度設定為盡量人人都可理解,所以雖然會出現少許程式碼,但完全不懂程式碼的人也能了解 90% 的內容。

 

Note: 目前 ChatGPT 所生成的答案,還是可能有許多偏誤(因為是從大量文本所自動組合而成),所以相關的訊息,建議將其視為

#輔助 的情境較為適用,都建議再多進行確認喔!但對我來說,已經確實可以在許多任務達到 #生產力提升 的目標了!

 

直接提問 ChatGPT:你可以怎樣輔助資料視覺化的任務?

本文的開始,直接提問 ChatGPT 以下問題:

Q:「你可以怎樣輔助資料視覺化的任務呢」

ChatGPT 回覆的情境包括:「解釋資料」、「選擇最佳的視覺化工具」、「自動創建圖表」、「生成敘述性文字」、「回答資料相關問題」等等;但因爲 ChatGPT 的特性是重複提問會得到不同的結果,第二次則得到了新的回覆包括「資料清洗」、「給予建議」等等。

不過,目前直接透過 ChatGPT 的互動介面,只能夠得到純文字(或是程式碼)的回覆,如果需要圖像化的結果,還需要搭配程式碼的方式來生成。

圖:第一次提問所得到的回覆

圖:第一次提問所得到的回覆

broken image

圖:第二次提問所得到的回覆

目前 ChatGPT 限制於只能 input 對話式的文本,可能還需要持續探索使用方式,但作為未來應用場景的想像是挺具體的!覺得不久後的將來,AI 除了對話文本式使用情境外,也可能逐漸能夠支持 input 圖表並 output 建議等等!

接下來,進入本文吧,來看看現在的 ChatGPT,在哪些環節有機會能夠輔助我們執行資料視覺化任務呢?本文切分了十種場景,分別為:

  • 情境一:幫助挑選數據圖表
  • 情境二:詢問特定議題的指標
  • 情境三:詢問指標的排名、變化、應變
  • 情境四:詢問指標的計算方式
  • 情境五:詢問數據的來源與管道
  • 情境六:詢問練習資料集
  • 情境七:回答圖表的 Best Practice
  • 情境八:挑選合適的視覺化工具
  • 情境九:生成 Python 等虛擬程式碼
  • 情境十:生成真實資料圖表 + debug

情境一:幫助挑選數據圖表

基本情境,想說直接問看看 ChatGPT 在特定的情境,適合使用哪一圖表?我隨意提問了三個指令,覺得都表現的還不錯,答案有一定的好品質:

Q:如果要比較收入與成本支出,使用哪一種圖表比較合適?

Q:如果想要呈現公司業績的成長,哪一種圖比較合適呢?

Q:如果想要呈現全國選舉結果,哪一種圖比較合適呢?

 

broken image
broken image
broken image

我覺得 ChatGPT 確實有針對資料集的類別屬性,提供一些可以思考的圖表製作方向,且特別對於設計儀表板有幫助,讓我對於該儀表板有一個初步的想像,可以加速圖表的設計與製作。

情境二:詢問特定議題的指標

有做過數據分析的人就會知道,挑選正確的量化指標非常重要,而如果是比較不熟悉的領域,就需要花一些時間消化指標,以下是我嘗試問 ChatGPT 關於數據指標的一些提問,大家可以參考看看。

Q:可否告訴我,哪些是人力資源的 KPI 指標?

Q:請問哪些指標用來衡量一個國家的財富不均狀況?

broken image
broken image

覺得答案蠻不錯的,我有刻意詢問一些我不太確定的議題,而答案確實可以在短時間讓我獲得許多多實用的訊息。

情境三:詢問指標的排名、變化、應變

因為 ChatGPT 的強項在於收集網路上的超大量文本,來作為回覆的依據,因此我覺得或許可以問看看相關數據變化的可能原因,例如以下的指令:

Q:可否告訴我,台積電過去二十年的的股價變化?

Q:可否告訴我,台灣目前的生育率世界排名以及可能的原因?

Q:面對台灣的低生育率議題,可能有怎樣的應變方式呢?

broken image
broken image
broken image

覺得 ChatGPT 對於回覆歷史數據變化還蠻方便的,可以快速問到一些常見的數據,不用再自己消化很多的部落格資訊;此外,詢問一些社會議題(生育率)也能給出不錯品質的回覆,甚至能夠主動性的提供一些參考建議,覺得已經是很強大的人類助理的感覺。

情境四:詢問指標的計算方式

了解指標之後,覺得 ChatGPT 應該也可以提供計算方式的資訊,實驗的效果也不錯;以下嘗試詢問了「基尼係數」與「RFM」指標的計算方式,答案也都不錯。

Q:請問基尼係數的計算方式?

Q:請問 RFM 指標的計算方式?

broken image
broken image

情境五:詢問數據的來源與管道

另外,過往透過 Google 要找到一些資料集的來源,有時會有點花時間,來試試看透過 ChatGPT 找找看,例如請問了以下的指令:

  • Q:可否告訴我,哪裡有全球不同國家的 GDP 資料?
  • Q:請問哪裡有關於台灣零售業的開放資料?
  • Q:請問哪裡有台灣與日本的經濟發展比較數據?
broken image
broken image
broken image

答案品質也還不錯(不過 ChatGPT 的回答有時候會自動切換為簡體字,重新提問又會切換為繁體),自己是覺得這個情境也蠻好用的,雖然過往透過 Google 也可以找到類似的資料,但 ChatGPT 因為回覆的訊息量更摘要性,真的能夠幫助我們在幾秒內直接取得整理過的資訊;此外,因為教學工作的關係,我常常要找一些練習用的資料集,覺得下次確實會想要透過 ChatGPT 來詢問數據的來源。

情境六:詢問可以練習資料視覺化的資料集

前面的詢問,已經能夠取得指定資料的來源,但我好奇可否更直接的詢問資料集的連結,因此測試了以下的問題,ChatGPT 提供了經典的 Iris Dataset,且我還蠻喜歡它附加的一些文字解釋與分析的方向!

Q:可否提供適合進行資料視覺化練習的資料集,且具備多種資料欄位的類型

broken image
broken image

情境七:幫忙回答圖表的 Best Practice

在執行資料視覺化的時候,常常看到有人使用了錯誤的方式製圖,想實驗看看 ChatGPT 能否提供一些製圖上的精準輔助資訊(最佳實踐 Best Practice),這個實驗也是可以的,答案的品質也很不錯;我還刻意提問了比較少見的玫瑰圖,也能確實回覆正確的答案。

Q:可否告訴我,使用圓餅圖的最佳實踐(Best Practice)

Q:可否告訴我,使用南丁格爾玫瑰圖的最佳實踐(Best Practice)

 

broken image
broken image

情境八:挑選合適的視覺化工具

蠻好奇 ChatGPT 消化了大量資訊後,會怎樣回答關於資料視覺化工具的提問,另外因為我是 Tableau 講師,也好奇 ChatGPT 會不會提到這套軟體(實驗結果是 Yes,而且還排在第一位);此外因為 PowerBI 不支援 Mac,所以也刻意的提出我是用 Mac 電腦,看是否 ChatGPT 會給出正確的答案,而確實第二種提問,就沒有回答 PowerBI。

Q:請問有哪一些資料視覺化工具,在哪些情境適合使用哪一套軟體呢?

Q:我是用 Mac 電腦,可否推薦給我合適的資料視覺化工具?PowerBI 不能使用於 Mac 嗎?

 

broken image
broken image

情境九:生成 Python / HTML / Javascript 的程式碼

Note:本情境需要些許程式碼經驗

ChatGPT 可以用來輔助生成程式碼已經不是新聞了,以下測試一些請它生成圖表程式碼的指令(ps. 之後會寫另一篇,關於 ChatGPT 怎樣跟程式碼 IDE 整合的方式,因為難度較高就先不放在此篇中),實驗結果也非常順利,甚至還會提供程式碼的解讀!

Q:可否幫我生成一段 python 程式碼,可接受四個變數 x,y,z,v ,並透過 Scatter Chart 呈現


把結果丟到 Colab 執行,是完全可以運作的(一個字都沒有改)。

broken image
broken image

另外,如果改指定用 html 與 Javascript(前端程式碼標準組合)來詢問看看;結果也蠻不錯,ChatGPT 決定使用 Chart.js 來輸出程式碼,可參考以下的結果(因程式碼較長,截圖有省略部分資訊)。

Q:可否幫我生成一段 html 與 javascript 前端程式碼,可接受四個變數 x,y,z,v ,並透過 Scatter Chart 呈現

broken image

 

產生的程式碼,透過可前端測試的環境(Jsfiddle)直接貼上,也確實可以生成圖表,而且還是動態的(點這裡可以線上瀏覽)。

情境十:生成真實資料集圖表 + debug

Note:本情境需要些許程式碼經驗

過程中,隨意嘗試了一些指令,發現 chatGPT 也很擅長直接幫忙餵資料,甚至可以直接指定 X,Y 軸之類,例如我透過以下指令:

Q:你可以生成一個世界GDP排行前50的圖表程式碼嗎?X 軸為 GDP,Y 軸是國家

所得到的程式碼,甚至同時包括了資料來源(csv),所以基本上整段程式碼直接餵給程式碼編輯軟體,就可以產生圖表了,基本上整個過程只要 1 分鐘,非常驚人!

broken image

然後我將此段程式碼餵給 Google colab 來跑結果看看,一個字都沒改,就可以確實得到資料視覺化的圖片。

broken image

 

此外,我有閱讀到一些文章,有提到也可以直接請 chatGPT 產生視覺風格不同的圖表,所以我重新提問以下問題(我送出後才發現我打錯字「事>是」,結果 ChatGPT 還是順利解讀了,也能產生正確的結果程式碼),真的非常好用!:

Q:承接上面的結果,可否把圖表改成黑色底的

broken image

此外,chatGPT 也會同時提供程式碼的解說

broken image


接下來,如果是涉及到國家排行的部分,我自己蠻偏好用「地圖」呈現的,故我想說問問 ChatGPT 可否幫我改成用地圖來呈現數據,結果確實是成功的,大家也可以玩玩看!

Q:承接上面的結果,可否把圖表改成用地圖呈現

broken image

不過這裡初步執行,是會報錯的,因為原始環境缺少了產生地圖的程式碼,

broken image

突發奇想,乾脆請 ChatGPT 幫忙 Debug 好了,確實取得了正確的修復方式。

broken image


以下是相同數據,改用地圖呈現的成果,雖然沒有很好但確實是產生了!

broken image

然後我也好奇,難道它也可以看懂想要標示標籤的需求嗎?結果也是成功的,確實更新的程式碼也幫我們加上了國家的標籤。

broken image
broken image

ps. 以上的 Python Collab 環境,可直接複製執行:https://colab.research.google.com/drive/1pPiaKgnl0ZqnxL47D9G7VNqInvulo0jd?usp=sharing

結語

這次大概花了 3 個小時進行實驗,對於結果很滿意!透過 ChatGPT 的問答確實能夠輔助到許多資料分析或是視覺化的知識運用,也覺得還有許多持續探索的空間。

補充說明,本篇文章比較偏向基礎初探,後續預計也將寫幾篇文章,包括 (1) 手把手開始玩 ChatGPT 資料分析 (2) 如何跟自身的工作流程結合,例如請 ChatGPT 幫忙分析自己的資料集 (3) 直接透過程式碼編輯器 IDE 引入 ChatGPT 的函式庫的情境。但因為這些流程都會涉及到更多的程式碼技巧,故決定寫在另外一篇。

歡迎訂閱

感謝您的閱讀,也歡迎於下方訂閱本站文章,就能收到後續新文章的推送。

 

工商:ChatGPT 生產力與資料課程

文末小工商,如果對於以下兩個主題感興趣:

(1) 如何透過 ChatGPT 強化工作生產力

(2) 如何透過 ChatGPT 協作資料分析與視覺化

 

歡迎點選以下連結,查看我的 ChatGPT 線上課程:

ChatGPT 課程