一提到用 Python 作圖,很多人第一個想到的庫肯定是 Matplotlib ,功能強大,但是相應地安裝所需要的依賴就多。有些開發者在自己的工作流中有簡單作圖的需求,但是又不希望引入依賴關系複雜的 Matplotlib,是以就有了 Chart。
Chart 是一個非常新的類庫,上線 Github 僅有 10 多天的時間,Star 數也不多。不過我覺得比較有意思,大家可以閱讀項目的源代碼,學習如何自己開發繪圖功能。
基本功能
Chart 目前僅支援三種圖表類型:柱形圖、散點圖和直方圖,圖表資料點可以使用自定義的标記。該庫的一個特點,在開頭我們也提到了,就是沒有任何的第三方依賴,完全是使用标準庫中的庫實作的。
柱形圖
柱形圖的建立,非常地簡單,傳入标簽和具體的值等資料,即可快速實作。下面是作者給出的示例:from chart import bar
x = [500, 200, 900, 400]
y = ['marc', 'mummify', 'chart', 'sausagelink']
bar(x, y)
柱形圖預設的資料點标記圖形,是 ▇,但是也支援自定義。marc: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
mummify: ▇▇▇▇▇▇▇
chart: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
sausagelink: ▇▇▇▇▇▇▇▇▇▇▇▇▇
比如說,可以改成:
從上面的示例,還可以看出, bar 函數還接受 pandas 資料框的列資料
直方圖
直方圖也很簡單,提供了 histogram 快捷函數。
散點圖
RangeScaler
以 bar 圖形為例,我們看到 x 軸的值相差可能會非常大:[500,200,900,400],示例中最大有 700 的內插補點。在顯示圖表的時候,我們知道螢幕的範圍是有限的,是以必須要限制柱形的最大高度。
給定數值範圍後,就需要對 x 軸的值進行預處理,将所有的資料統一到同一個範圍内,這也是整個庫最為重要、最為核心的部分了。
結語
開頭提到,這個庫的功能簡單,沒有任何依賴,是以代碼量很少,非常适合大家閱讀它的源代碼。
剛才用到的 bar、histogram、scatter 和 RangeScaler 等函數,建議收藏本文後,進入項目頁面檢視相關源代碼。