1. 程式人生 > >Python:matplotlib繪制散點圖

Python:matplotlib繪制散點圖

代碼 使用 有用 使用方式 配置 說明 不同 mat auto

與線型圖類似的是,散點圖也是一個個點集構成的。但不同之處在於,散點圖的各點之間不會按照前後關系以線條連接起來。

用plt.plot畫散點圖

技術分享圖片

技術分享圖片

奇怪,代碼和前面的例子差不多,為什麽這裏顯示的卻是散點圖而不是sin曲線呢?原因有二:一是點集比較少,稀疏,才30個;二是沒有指定線型。

用plt.scatter畫散點圖

scatter專門用於繪制散點圖,使用方式和plot方法類似,區別在於前者具有更高的靈活性,可以單獨控制每個散點與數據匹配,並讓每個散點具有不同的屬性。

一般使用scatter方法,如下例子就可以了:

plt.scatter(x, y, marker=‘o‘)

下面看一個隨機不同透明度、顏色和大小的散點例子:

技術分享圖片

技術分享圖片

主要參數說明:

x,y:輸入數據

s:標記大小,以像素為單位

c:顏色

marker:標記

alpha:透明度

linewidths:線寬

edgecolors :邊界顏色

上面的例子可以拓展到Scikit-learn中經典的鳶尾花iris數據來演示。

Iris數據集是常用的分類實驗數據集,由Fisher在1936收集整理,是一類多重變量分析的數據集。數據集包含150個數據,分為3類,每類50個數據,每個數據包含4個屬性。通過花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性預測鳶尾花卉屬於(Setosa,Versicolour,Virginica)三個種類中的哪一類。

技術分享圖片

技術分享圖片

這個散點圖讓我們看到了不同維度的數據:每個點的坐標值x和y分別表示花萼的長度和寬度,點的大小表示花瓣的寬度,三種顏色對應三種不同類型的鳶尾花。這類多顏色多特征的散點圖在探索和演示數據時非常有用。

在處理較少點集的時候scatter方法靈活度更高,可單獨配置並渲染,但所需消耗的計算和內存資源也更多。當數據成千上萬個之後,plot方法的效率更高,因為它對所有點使用一樣的顏色、大小、類型等配置,自然更快。

Python:matplotlib繪制散點圖