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