Matplotlib是Python的數據可視化庫的基礎。它是其他可視化工具(如Seaborn)的基礎。
Matplotlib提供了很大的靈活性,因此您可以自定義或調整幾乎所有的圖表。但是想要完全控制可視化就需要編寫更多的代碼。
在本文中,我們將介紹3個可以用于定制Matplotlib圖表的技巧:
減少x軸或y軸上的刻度數
添加一個輔助y軸
共享x軸的子圖坐標對齊
本文中我們將使用折線圖為例,但這些技巧也可以應用于其他類型的圖。我創建了一個數據集模擬價格和銷售數據。
數據包含日期、價格和銷售數量列。只顯示了數據集的前100行。
減少刻度數
如果在軸上繪制的數據點數量很多,刻度看起來非常的緊湊,甚至可能重疊。在處理時間序列數據時,x軸通常包含占用大量空間的日期,所以可以減少軸上的刻度數來提高顯示效果。
讓我們先做一個不限制x軸刻度數的例子。
可以看到X軸的刻度重疊并且根本無法顯示完整。下面我們添加設置只顯示部分的刻度,這樣可以完整顯示。
我們使用NumPy的arange函數來指定標記的位置,現在看起來好多了。
使用輔助軸
如果想在同一個圖上顯示兩個變量。例如將產品的價格和銷售數量繪制在一起查看價格對銷售數量的影響。
我們的DataFrame中的銷售數量和價格列顯示在同一線圖上,只有一個y軸。
可以看到價格和銷售數量的取值范圍差距很大我們幾乎看不到銷售的變化,這時可以使用輔助軸來指定另外一條線的取值范圍。
看起來好多了。我們可以清楚的觀察到價格與銷售量之間的反比關系。
共享x軸的子圖坐標對齊
我們可以在一個Figure對象上創建多個子圖。Matplotlib允許使用subplot函數創建子圖格。例如下面的代碼行創建了一個包含4個子圖的2x2網格圖。
使用nrows和ncols參數自定義網格的大小。
如果我們想在2個子圖中共享X軸怎么辦呢?我們可以使用tight_layout函數。它可以用于調整子圖之間的填充:
可以看到2個子圖的X軸坐標(日期)都已經對齊了,這對于分析時間序列時非常有用的,例如想對比2個產品或者2個不同的門店在同一時期的銷售情況,通過對齊日期可以給出非常好的直觀判斷。
以上就是3個Matplotlib可視化的小技巧,這些技巧肯定會幫助你創建信息更豐富、功能更強大的數據可視化圖表。