簡單易上手的資料視覺化網站: rawgraphs

6 天 6 小時 ago
Rawgraphs 是一套很適合入門者的網頁版資料視覺化自由軟體。 不必下載軟體, 只需要到示範網址 ("Use it now!" 點下去)、 上傳你的 csv 檔、 決定你想畫哪一種圖、 決定要用哪些欄位, 馬上就幫你產生圖形。 這裡 有一篇入門的中文教學, 我就不再重複介紹基本的操作了。 以下是我的一些使用雜記。 一、 隱私 & docker Rawgraphs 官網強調一切運算都在瀏覽器裡面發生, 你的資料不會被傳到伺服器去。 但如果你的資料高度敏感 (例如客戶的個資), 還可以更進一步下載 Dockerfile、 放在一個空目錄裡、 進入該目錄、 用 docker build -t rawgraphs . 自行在本機建立一個 docker image。 這樣就可以完全離線執行了。 成功之後, 可以用 docker run -d --name rg0 -p 3072:
ckhung

讓資料視覺化告訴你何謂 mal-information

1 週 2 天 ago
這是舊聞,不過很適合拿來當媒體識讀的教材。 2022 年 11/23 左右, 正值台灣武肺疫情高峰期間, 突然出現大量 「近二週致死率全球第三高」 的新聞。 這是 mal-information 的例子: 可能是事實, 但有惡意誤導的意圖。 按照 這裡 的指示取得疫情開始至 2023 年 3 月的資料檔 owid-covid-data-old.csv 。 只保留有興趣的欄位: cut -d, -f 1-4,9-10,15-16 owid-covid-data-old.csv > covid-deaths-pm.csv python3 filter.py covid-deaths-pm.csv > G20-covid-deaths-pm.csv 這個程式會讀取 G20.csv, 然後逐列處理 covid-deaths-pm.csv, 只留下
ckhung

試算表的 unpivoting/melting

1 個月 ago
有些試算表它的許多欄位恰好構成資料空間的某種分割, 例如12個月份、 各類交通工具、 4種血型、 全國22個縣市... 等等。 有時候我們會希望把這 N 個欄位合併成兩個欄位, 一個欄位紀錄原表格中的欄位名稱, 另一個欄位紀錄原表格的內容, 從而產生一個 「比較瘦、 N倍高」 的新表格。 這個轉換動作稱為 unpivoting 或 melting。 這篇文章 的圖很清楚, 大推! 也可以參考 用 google 試算表做 unpivoting 的中文教學。 「電力能源來源分類」 也屬於這種表格。 為了繪製 treemap, 我們要先對它進行 unpivoting/melting。 找不到命令列工具可以直接套用; 不過 pandas 裡面就有 melt() 函數可以做這件事。 處理所以寫一個很短的程式 melt.py 就解決了。 呼叫 melt() 的時候, 必須指定哪些欄位不
ckhung

「電力能源來源分類」資料整理與驗證

1 個月 ago
右圖是我看著 electricity-mix.csv (製作過程) 整理出來的 「電力能源來源分類」 猜測。 這種樹狀的階層式結構 (hierarchy) 感覺很好拿來畫 treemap 之類的圖形。 (另文詳) 為了驗證這些猜測: 先撈出美國的資料: ( head -n 1 electricity-mix.csv ; grep '^USA,' electricity-mix.csv ) > usa.csv 用 libreoffice 打開 usa.csv 「檢視」... 「凍結第一列」、 選取整張試算表、 把所有欄位同步變窄、 選取第一列、 文字折行, 這樣比較方便讀標題文字。 刪掉不相關的欄位 (例如所有的 per capita 欄位)、 編輯簡化標題列、 根據猜測的分類調整欄位順序, 把相關的放在鄰近位置。 新增一些檢查欄位。 例如猜測
ckhung

幫 OWID 資料加上三字元 iso 國碼及所在大陸

1 個月 1 週 ago
上 「資料視覺化」 課程的時候, 想要拿 electricity mix 這個資料集做例子。 發現裡面混雜著個別的國家、 聯盟 (G20、 OECD) 跟大陸 (歐/亞/非/..), 很難整理。 另一方面我也希望標示每個國家所在的大陸, 但是原始資料集裡面並沒有這項資訊。 於是我找到 List of Countries by Continent 這個表格, 並且 在 owid dataset 發問 之後修改了我的小程式 country-encode.py, 以後要整理 OWID 的資料就方便多了。 假設程式碼 country-encode.py、 簡碼對照表 country-codes.csv 跟某個想要處理的 csv 資料檔 (例如我提供的範例 democracy.csv) 這三個檔案都在目前目錄。 可以這樣執行: python3 country-encode.py
ckhung

ansi: 移動遊標與顯示彩色文字的 python 函式庫

1 個月 3 週 ago
想要在終端機視窗裡移動遊標、 顯示彩色的文字跟背景、 粗體/斜體/底線/閃爍等等特效, 如果在 bash 底下, 可以 用 echo 指令 列印特殊的 ANSI escape sequences。 如果在 python 底下, 則可以使用 ansi 這個套件。 先安裝套件: pip3 install ansi 然後進入 python3 測試: import sys from ansi.colour import fg, bg, fx print('中文', fx.italic, '也', fx.bold, '可以', bg.blue, '有', fg.red, '特效', fx.blink, '嗎', fx.reset, '?', sep='') sys.stdout.write('中文' + str(fx.italic) + '也' + str(fx.bold) + '
ckhung

每一句都可以讀得懂的最精簡 webpack 設定檔 + js toolchain 新手的行前說明

3 個月 1 週 ago
Javascript 語言本身已經 令程式設計師愛恨交織; 它的工具鏈 (toolchain) 更令人眼花撩亂。 去年 我很匆促地學了一點 webpack, 今年好像又不夠用了。 不同時期不同作者的設定檔都差好多, 其中很多也不適用於新版。 越爬文越迷惘, 覺得自己怎麼那麼弱, 都快要哭出來了... 偶然搜尋到這篇: A Crash Course in Modern JavaScript Tooling, 聽到作者安慰: "It's not your fault." 突然覺得獲得救贖, 原來很多 python 族都跟我有相同的感覺! [2023/2 很多時候其實根本可以略過工具鏈啊!] 這次沒有時間壓力, 花了快一個月終於建立了一個最精簡的骨架程式 jstc-novice, package.json 跟 webpack.config.js 裡面的每一句話都看得懂, 可以作為 (已
ckhung
Checked
12 小時 57 分鐘 ago
大人問小孩: 「全世界的玩具隨便你挑? 這怎麼可能? 如果我要的玩具只有一個, 正好又被別人借走了呢?」
「玩具閘門後面, 每種玩具永遠只有一個。 任何人想玩, 隨時都可以生一個複製品給你。
這裡沒有人搶玩具。 這裡是 玩具烏托邦。」
* * * *
貴哥在這裡分享自由軟體跟免費雲端工具的知識與技術, 目的是希望打破 「品牌忠誠肥羊」 們的迷思、 要「讓數位高牆倒下」 (請搜尋)。

(還有其他雜七雜八不想放到 「資訊人權貴ㄓ疑」 的筆記跟感言)
Subscribe to 玩具烏托邦 feed