70多個方法,輕鬆入門Python可視化編程

編程語言 Python 可視化 MATLAB 數據挖掘 嬌兮心有之 2018-12-07

圖形可視化是展示數據的一個非常好的手段,好的圖表自己會說話。毋庸多言,在Python的世界裡,matplotlib是最著名的繪圖庫,它支持幾乎所有的2D繪圖和部分3D繪圖,被廣泛地應用在科學計算和數據可視化領域。但是介紹matplotlib的中文書籍很少,大部分書籍只是在部分章節中提到了matplotlib的基本用法,因此在內容和深度上都力有不逮。《Python數據可視化編程實戰(第2版)》則是一本專門介紹matplotlib的譯著。70多個方法,輕鬆入門Python可視化編程。

有需要Python學習資料的小夥伴嗎?小編整理一套Python資料和PDF,感興趣者可以關注小編後私信學習資料(是關注後私信哦)反正閒著也是閒著呢,不如學點東西啦


70多個方法,輕鬆入門Python可視化編程


matplotlib是一個開源項目,由John Hunter發起。關於matplotlib的由來,有一個小故事。John Hunter和他研究癲癇症的同事藉助一個專有軟件做腦皮層電圖分析,但是他所在的實驗室只有一份該電圖分析軟件的許可。他和許多一起工作的同事不得不輪流使用該軟件的硬件加密狗。於是,John Hunter便有了開發一個工具來替代當前所使用的軟件的想法。當時MATLAB被廣泛應用在生物醫學界中,John Hunter最初是想開發一個基於MATLAB的版本,但是由於MATLAB的一些限制和不足,加上他本身對Python非常熟悉,於是就有了matplotlib的誕生。

所以,無論從名字上,還是從所提供的函數名稱、參數及使用方法,matplotlib都與MATLAB非常相似。對於一個MATLAB開發人員,使用matplotlib會相當得心應手。即使對不熟悉MATLAB的開發人員(譬如我),對其函數的使用也能夠一目瞭然,而且matplotlib有著非常豐富的文檔和實例,再加上本書的介紹,學習起來將會非常輕鬆。

matplotlib命令提供了交互繪圖的方式,在Python的交互式shell中,我們可以執行matplotlib命令來實時地繪製圖形並對其進行修改。生成的圖像可以保存成許多格式,這取決於其所使用的後端,但絕大多數後端都支持如png、pdf、ps、eps和svg等格式。

《Python數據可視化編程實戰(第2版)》講什麼?

在本書中,作者對內容進行了整理,剔除了一些與章節聯繫不是很大的延伸內容,對排版也進行了修改,使得本書在內容編排上更加簡潔緊湊。在本書中,作者還引入了pandas和Plot.ly。其中pandas是一個功能強大且高性能的數據分析工具。Plot.ly是一款非常優秀的在線圖表工具,它非常注重圖表的可操作性及分享。在內容上,第2版更加完整地涵蓋了Python數據可視化領域用到的主流工具。限於篇幅,本書不可能對所有工具做完整詳細的介紹,但本書所講的工具能滿足讀者大部分的數據可視化需要,讀者可以根據自己的需要有選擇地深入學習。

最好的數據是我們能看到並理解的數據。作為開發人員和數據科學家,我們希望可以創造並構建出最全面且容易理解的可視化圖形。然而這並非易事,我們需要找到數據,對它讀取、清理、過濾,然後使用恰當的工具將其可視化。本書通過直接和簡單(有時不那麼簡單)的方法解釋了進行數據讀取、清理以及可視化的流程。

本書涉及如何讀取本地數據、遠程數據、CSV、JSON以及關係型數據庫中的數據。

通過matplotlib,我們能用一行簡單的Python代碼繪製出一些簡單的圖表,但是進行更高級的繪圖還需要Python之外的其他知識。我們需要理解信息理論和人類的審美學來生成最吸引人的可視化效果。

本書將介紹在Python中使用matplotlib繪圖的一些實戰練習,以及不同圖表特性的使用情況及其用法示例。

定義圖表類型——柱狀圖、線形圖和堆積柱狀圖

雖然我們已經用matplotlib繪製了一些圖表,但並沒有詳細介紹它們是怎麼工作的,也沒有介紹如何對圖表設置以及matplotlib其他的許多功能。本文將介紹並練習一些最基本的數據可視化圖表類型,如線形圖、柱狀圖、直方圖、餅圖,以及它們的變形。

Matplotlib是一個強大的工具箱,能滿足幾乎所有2D和一些3D繪圖的需求。通過示例學習matplotlib是其作者推薦的方式。當以後你需要畫一個圖表時,就可以找到一個相似的例子,然後做些改動來滿足新的需求。

本節將展示基本的圖表以及它們的用途。這裡介紹的大多數圖表都是很常用的,其中有一些是理解數據可視化中更高階概念的基礎。

1.1.1 準備工作

我們從matplotlib.pyplot庫的一些常用圖表入手,採用一些簡單的樣本數據開始一些基本的繪圖操作,為後面幾節內容打基礎。

1.1.2 操作步驟

我們先在IPython中創建一個簡單的圖表。IPython是一個非常不錯的工具,它能讓我們交互式地改變圖表並能即刻查看結果。

(1)在命令行鍵入以下命令來啟動IPython。


70多個方法,輕鬆入門Python可視化編程


(2)導入需要的方法。


70多個方法,輕鬆入門Python可視化編程


(3)然後鍵入matplotlib plot代碼。


70多個方法,輕鬆入門Python可視化編程


圖表會顯示在一個新打開的窗口中,其默認的外觀和輔助信息如圖1-1所示。

Matplotlib中的基本圖表包括以下元素。

x軸和y軸:水平和垂直的軸線。

x軸和y軸刻度:刻度表示座標軸的分隔,包括最小刻度和最大刻度。

x軸和y軸刻度標籤:表示特定座標軸的值。

繪圖區域:實際繪圖的區域。


70多個方法,輕鬆入門Python可視化編程


圖1-1

你會注意到我們提供給plot()的值是y軸的值。plot()為x軸提供了默認值,在這裡為0~7的線性值。

現在,試著通過plot()的第一個參數添加x軸的值,在剛才的IPython會話中鍵入以下代碼。


70多個方法,輕鬆入門Python可視化編程


注意IPython是如何對輸入和輸出行進行計數的(In[2]和Out[2])。這能幫助我們記住它在當前會話中的位置,並且IPython還提供了更高級的功能,例如把部分會話保存到Python文件中。在數據分析期間,用IPython做原型設計是得到滿意方案的最快捷的方式,我們還可以將特定的會話存到文件中,以備將來重新生成相同的圖表。

圖表會變成圖1-2所示的樣子。


70多個方法,輕鬆入門Python可視化編程


圖1-2

從圖1-2中可以看到,matplotlib通過擴展y軸來適應新的值範圍,並且為了讓我們能區分出新的圖形,自動改變了第二個線條的表示方式(本書使用繪製方式)。

如果不關閉hold屬性(通過調用hold(False)方法),所有接下來的圖表都將繪製在相同的座標軸下。這是IPython的pylab模式的默認行為,然而在編寫常規Python腳本中,hold屬性默認是關閉的。

讓我們基於相同的數據集合多生成一些常見的圖表來做一下比較。可以在IPython中鍵入下面的代碼,或者在一個單獨的Python腳本中運行它。


70多個方法,輕鬆入門Python可視化編程


繪製出來的圖表如圖1-3所示。


70多個方法,輕鬆入門Python可視化編程


1.1.3 工作原理

通過調用figure()方法,我們創建出一個新的圖表。如果給該方法提供一個字符串參數,例如"sample charts",這個字符串就會成為窗口的後臺標題。如果通過相同的參數(也可以是數字)調用figure()

方法,將會激活相應的圖表,並且接下來的繪圖操作都在此圖表中進行。接下來,調用subplot(231)

方法把圖表分割成2×3的網格。也可以用subplot(3,2,1)這種形式來調用,第一個參數是行數,第二個參數是列數,第三個參數表示圖形的標號。接著用幾個簡單的命令創建垂直柱狀圖(bar())和水平柱狀圖(barh())。對於堆疊柱狀圖,我們需要把兩個柱狀圖方法調用連在一起。通過設置參數bottom=y,把第二個柱狀圖和前一個柱狀圖連接起來形成堆疊柱狀圖。通過調用boxplot()方法可以創建箱線圖,圖中的箱體從下四分位數延伸到上四分位數,並帶有一條中值線。後續我們會繼續介紹箱線圖。

最後創建了一個散點圖來讓大家對基於點的數據集合有所瞭解。當一個數據集合中有成千上萬的數據點時,散點圖很有可能就更合適了。但這裡,我們只是想舉例說明相同數據集合的不同展示方式。

1.1.4 補充說明

現在讓我們回到箱線圖,來解釋一下幾個重要特徵。

默認情況下箱線圖會顯示以下幾部分。

箱體:涵蓋四分位數範圍的矩形。

中值:箱體中間的一條線。

箱須:延伸到最大值和最小值的豎直的線,不包括異常值。

異常值:箱須之外的點。

為了說明上述的數據項,在接下來的代碼中,我們將用同一個數據集合來繪製箱線圖和直方圖。


70多個方法,輕鬆入門Python可視化編程


生成的圖表如圖1-4所示。

通過上述對比,我們可以觀察到兩種圖表在數據展現上的差異。左圖(箱線圖)呈現了前面提到的5個統計數據,右圖(直方圖)展示了數據集合在給定範圍內的分組情況。


70多個方法,輕鬆入門Python可視化編程




70多個方法,輕鬆入門Python可視化編程


《Python數據可視化編程實戰(第2版)》

[愛爾蘭] 伊戈爾·米洛瓦諾維奇 著

本書是一本使用Python實現數據可視化編程的實戰指南,介紹瞭如何使用Python最流行的庫,通過70餘種方法創建美觀的數據可視化效果

全書共9章,分別介紹了準備工作環境、瞭解數據、繪製並定製化圖表、學習更多圖表和定製化、創建3D可視化圖表、用圖像和地圖繪製圖表、使用正確的圖表理解數據、更多的matplotlib知識以及使用Plot.ly進行雲端可視化。

有需要Python學習資料的小夥伴嗎?小編整理一套Python資料和PDF,感興趣者可以關注小編後私信學習資料(是關注後私信哦)反正閒著也是閒著呢,不如學點東西啦

相關推薦

推薦中...