散點圖顯示兩組數據的值,如圖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 數據可視化》
掃碼試讀了解課程
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!