Show HN: 更好的圖表 – 教會智慧體擺脫Matplotlib的平庸之作
本課程旨在教導AI智慧體、實習生或開發者如何製作美觀且資訊豐富的圖表,透過一套規則和最佳實踐,告別Matplotlib預設的平庸外觀。核心原則包括使用物件導向API、應用統一的主題樣式、精簡圖表元素、以及明智選擇圖表型別。
本課程的目標是解決一個常見問題:大多數Matplotlib生成的圖表看起來都像是預設輸出——帶有方框式邊框、單調的藍色、重複座標軸標籤的標題,以及隨機整數刻度線。修復這些問題並非能力不足,而是缺乏審美規則。本課程正是這些規則的集合。
課程首先強調了從pyplot狀態機轉向物件導向API的重要性。透過使用fig, ax = plt.subplots(),你可以直接操作圖表物件,避免全域性狀態的混亂。所有後續操作都應基於ax和fig,不再使用plt.*呼叫。這一轉變是後續所有改進的基礎。
接著,課程介紹了視覺層次結構:Figure(畫布)、Axes(繪圖區域)和Artist(所有可見元素)。每個元素都是Artist,你可以透過.set_*()方法修改其屬性。座標系統包括資料座標、軸座標、圖形座標和顯示座標,合理選擇座標系統可確保標註位置固定。例如,使用軸分數座標(axes fraction)可以使標註在不同資料範圍的圖表中保持相同的位置。
課程透過具體示例展示了改進效果。以月度收入資料為例,預設圖表使用藍色線條、方框邊框、標題僅為“revenue”,難以傳達資訊。改進後的圖表使用灰色線條作為背景,紫色突出顯示峰值點,新增直接標註和精煉標題,如“Revenue peaked in July, then cooled into year-end”,使資料故事一目瞭然。另一個經典例子是航空公司乘客資料(1949-1960),透過應用主題樣式、繪製12個月移動平均線,並新增說明性標題“US air travel roughly 17×'d in a decade — and the summer peaks grew with it”,清晰展示了增長趨勢。
課程還總結了實用規則:始終持有控制代碼(fig, ax);每個元素都是Artist,可被修改;有意識地選擇座標系統;在繪圖前先思考圖表型別。這些規則被收入專案可複用檔案(如CLAUDE.md、VISUALIZATION_GUIDE.md、house_style.py),確保未來智慧體能自動生成同等質量的圖表。
總之,本課程不僅提供了具體的程式碼示例,還建立了一套可傳承的審美規則,使任何人都能製作出專業、清晰的圖表。