散點圖
散點圖顯示兩組數據的值,如圖1-1所示。每個點的坐標位置由變量的值決定,並由一組不連接的點完成,用於觀察兩種變量的相關性。例如,身高—體重、溫度—維度。
圖1-1 散點圖示例
使用Matplotlib的scatter()函數繪製散點圖,其中x和y是相同長度的數組序列。scatter()函數的一般用法為:
主要參數說明如下:
x,y:數組。s:散點圖中點的大小,可選。c:散點圖中點的顏色,可選。 marker:散點圖的形狀,可選。alpha:表示透明度,在 0~1 取值,可選。linewidths:表示線條粗細,可選。
示例:繪製身高—體重的散點圖
運行腳本輸出如圖1-2所示的圖形。
圖1-2 基本的散點圖
散點圖主要演示兩個變量的相關性:正相關、負相關、不相關。
示例:顯示y=2x+1的圖形
Matplotlib中最基礎的模塊是Pyplot, 下面從最簡單的線圖開始講解。例如,有一組數據,還有一個擬合模型,通過編寫代碼來實現數據與模型結果的可視化。
假設一個線性函數具有形式y=ax+b, 自變量是x,因變量是y,y軸截距為b,斜率為a。
下面用簡單的數據來描述線性方程y=2x+1,代碼如下:
運行腳本輸出如圖2-2所示的圖形。
圖2-2 基本直線圖
在圖2-2中,使用線性方程y=2x+1畫出的是直線圖。如果想畫出曲線圖,則只需更改線性方程為
,完整代碼如下:
運行腳本輸出如圖2-3所示的圖形。
圖2-3 曲線圖
直方圖
直方圖由一系列高度不等的縱向條形組成,表示數據分布的情況。例如,某年級學生的身高分布情況,如圖4-1所示。
圖4-1 直方圖
直方圖與柱狀圖的區別有以下幾點:
1. 柱狀圖是用條形的長度表示各類別頻數的多少,其寬度(表示類別)是固定的,主要是展示不同類別的數據。
2. 直方圖是用面積表示各組頻數的多少,矩形的高度表示每一組的頻數 ( 或頻率 ),寬度則表示各組的組距,因此其高度與寬度均有意義。
3. 由於分組數據具有連續性,因此直方圖的各矩形通常是連續排列,而柱狀圖則是分開排列。
4. 柱狀圖主要用於展示分類型數據,而直方圖主要用於展示數據型數據。
使用Matplotlib的hist()函數繪製直方圖,hist()函數的一般用法為:
主要參數說明如下:
bins:直方圖中箱子 (bin) 的總個數。個數越多,條形帶越緊密。
color:箱子的顏色。
normed:對數據進行正則化。決定直方圖y軸的取值是某個箱子中的元素的個數 (normed=False), 還是某個箱子中的元素的個數佔總體的百分比 (normed=True)。
在介紹直方圖之前,先來了解什麼是正太分布。
正態分布也稱常態分布,是連續隨機變量概率分布的一種,自然界、人類社會、心理和教育中的大量現象均按正態形式分布。例如,能力的高低、學生成績的好壞等都屬於正態分布。正態分布曲線呈鐘形,兩頭低,中間高,左右對稱。因其曲線呈鐘形,所以人們又經常稱之為鐘形曲線,如圖4-2所示。
圖4-2 正態分布的鐘形曲線
正態分布有兩個參數,即均值和標準差。均值是正態分布的位置參數,描述正態分布的集中趨勢位置。概率規律為:取與均值越近的值的概率越大,而取離均值越遠的值的概率越小。
標準差描述正態分布資料數據分布的離散程度,標準差越大,數據分布越分散;標準差越小,數據分布越集中。標準差也是正態分布的形狀參數,標準差越大,曲線越扁平;反之,標準差越小,曲線越瘦高。
繪製直方圖,需要使用NumPy的np.random.randn(N)函數,這個函數的作用就是從標準正態分布中返回N個樣本值。
示例:直方圖
本例文件名為
「PythonFullStackChapter07mpl_hist01」
顯示直方圖。其完整代碼如下:
運行腳本輸出如圖4-3所示的圖形。
圖4-3 直方圖
如果你對 matplotlib 感興趣
推薦訂閱專欄《案例上手 Python 數據可視化》
掃碼試讀了解課程