iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0

昨天可以得出相關係數是多少,但還是很難直接看到每一天的資料到底發生了什麼變化。所以今天把原本只有文字和數字的分析結果視覺化,讓他在使用時能更容易觀察資料的變化

我先以之前設定的四大項來規劃:
睡眠時數如何變化?
用折線圖,從資料的datesleep_hours,就可以看到睡眠時數隨著日期的變化,哪一天的睡眠時數增加、哪一天減少。
睡眠品質好的平均睡眠時數是多少?
用長條圖比較good、normal、bad三種睡眠品質的平均睡眠時數。
任務量與入睡時間的關系?
搭配作天皮兒森相關係數的算法,從資料的tasksbedtime觀察兩者的資料分布與關係。
任務難度與睡眠品質的關系?
這部分比較特殊,因為difficultyquality都屬於分類資料而非數值,所以使用分組長條圖,比較不同任務難度下good、normal、bad出現的次數。

Xchart:

是一個 Java 的圖表函式庫,用途就是把 Java 裡的資料畫成圖表。

主要會用到幾個類別和方法:
CategoryChart代表圖表本身,用來存放圖表以及加入的資料。
CategoryChartBuilder可以設定圖表的大小、標題和 X/Y 軸等。
chart.addSeries()可以把要呈現的資料加入圖表。
SwingWrapper可以開出一個視窗,把建立好的圖表顯示出來。功能上可以先理解成之前使用過的 JOptionPane。

先從比較簡單理解的睡眠時數變化
https://ithelp.ithome.com.tw/upload/images/20260921/20184235O1NGe0mmoS.png
首先建立兩個 List List<String> categories = new ArrayList<>(qualityAvgMap.keySet()); List<Double> values = new ArrayList<>(qualityAvgMap.values());,分別存放日期和睡眠時數,然後使用之前學過的 for-each,把 records 裡面的每一筆 SleepRecord 依序取出,XChart 的 CategoryChartBuilder 建立圖表。最後:
new SwingWrapper<>(chart).displayChart()就能將剛才建立好的圖表顯示出來。


上一篇
分析結果怎麼看?開始理解資料相關性
下一篇
繼續視覺化:不同資料該怎麼畫?
系列文
30 天從資料處理、分析到生成式 AI 的整合應用與實作學習10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言