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
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
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
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
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
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
大人問小孩: 「全世界的玩具隨便你挑? 這怎麼可能?
如果我要的玩具只有一個, 正好又被別人借走了呢?」
「玩具閘門後面, 每種玩具永遠只有一個。
任何人想玩, 隨時都可以生一個複製品給你。
這裡沒有人搶玩具。 這裡是
玩具烏托邦。」
* * * *
貴哥在這裡分享自由軟體跟免費雲端工具的知識與技術, 目的是希望打破 「品牌忠誠肥羊」 們的迷思、
要「讓數位高牆倒下」 (請搜尋)。
(還有其他雜七雜八不想放到 「資訊人權貴ㄓ疑」 的筆記跟感言)
Subscribe to 玩具烏托邦 feed