文丨Chris Moffitt
編譯丨姜瑞琪
觸脈諮詢數據分析師
用過python的人都會面臨一個問題,尤其是初學者:我應該選哪個來實現數據可視化?
面對眾多的選項,要弄清楚什麼時候使用哪個的問題沒那麼容易。
這就是今天分享這篇文章的初衷,通過列舉一些使用頻率較高的工具,以及使用它們創建簡單的條形圖的方法,幫助各位進行簡單的梳理。
以下就是將要用來創建繪製數據的示例:
·Pandas
·Seaborn
·Ggplot
在示例中,我將使用pandas進行數據處理並使用它來完成可視化的效果。其實,在大多數情況下,可視化工具可以在沒有pandas的情況下使用,但pandas+可視化工具的組合很常見,這是一個很好的起始點。
pandas
我通常會用pandas DataFrame開始製作各種繪圖的工作。這樣有一個優勢,就是pandas提供內置的繪圖功能,它是matplotlib之上的一層。
首先,導入我們的模塊並將數據放入DataFrame中,此外,還將對數據進行排序並讓其限制在前10行中。
所有的示例中使用的預算行都相同,以下是導入DataFrame後前5個項目的樣子:
我們可以手動設置外觀並創建一個條形圖:
如果想保存生成的圖像,則需要以下的代碼:
製作成功後會如下所示:
如果想對Y軸進行更多格式化,則需要一些matplotlib的操作,而不能僅僅通過pandas來實現。
Seaborn
Seaborn是基於matplotlib的可視化庫,它能讓數據可視化在視覺上更具有吸引力,並且能夠很好的與pandas一起使用。
我喜歡用Seaborn的一點就在於它能夠快速更改調色板以使其外觀更好看。
標準導入並讀取數據:
在使用的時候,我發現一件事情就是必須使用x_order明確設置x_axis上項目的順序。
對這節代碼設置順序,並設置繪圖和條形圖顏色的樣式:
示例中,我們使用matplotlib旋轉x軸標題,以便在實際場景中可以閱讀。視覺上,顯示看起來不錯。理想情況下,可以使用matplotlib中的plt.yticks在y軸上設置刻度線的格式。
ggplot
ggplot與Seaborn相似,都是建立在matplotlib之上,並以一種簡單的方式優化提升matplotlib可視化的視覺吸引力。但有一點與seaborn不同,它是R的ggplot2埠,因此,某些API是非Python的,但功能非常強大。
繼續導入並讀取我們的數據:
現在,我們可以通過將幾個ggplot命令連接在一起來構建繪圖:
通過使用print p可以顯示圖形。
實操中,確實需要花一些時間才能弄清楚如何將文本旋轉90度,以及如何在x軸上排列標籤。
我發現scale_y_continous是一個很酷的功能,它能使標籤的使用變得更簡單。
如果要保存圖像,可以使用ggsave輕鬆進行:
最終生成的圖像。
總結:
使用Python繪製數據圖表時,選擇太多是好事兒也是壞事兒。這意味著我們需要根據要完成的工作找出適合的方法,去確定這些工具能否有用。
這沒辦法給出一個明確的定義,以此為基準進行選擇。以下是我總結的一些想法:
·pandas對於簡單的繪製圖表很方便,但通常需要搭配matplotlib進行使用。
·seaborn可以支持複雜的可視化方法,在配色方案上也有一定優勢。但是,仍需要用matplotlib進行調整。
·ggplot仍然在不斷優化。
希望對各位有所幫助~
原文連結:https://pbpython.com/visualization-tools-1.html,有所刪減及修改