plt.scatter() 和sns.scatterplot() 畫散點圖


plt.scatter()畫散點圖

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)

參數解釋:

1 x,y:表示的是大小為(n,)的數組,也就是我們即將繪制散點圖的數據點,相當於是x、y軸坐標 2 s:是一個實數或者是一個數組大小為(n,),這個是一個可選的參數。可理解為散點的的點的大小 3 c:表示的是顏色,也是一個可選項。默認是藍色'b',表示的是標記的顏色,或者可以是一個表示顏色的字符,或者是一個長度為n的表示顏色的序列等等,感覺還沒用到過現在不解釋了。但是c不可以是一個單獨的RGB數字,也不可以是一個RGBA的序列。可以是他們的2維數組(只有一行)。
4 marker:表示的是標記的樣式,默認的是'o'5 cmap:Colormap實體或者是一個colormap的名字,cmap僅僅當c是一個浮點數數組的時候才使用。如果沒有申明就是image.cmap
6 norm:Normalize實體來將數據亮度轉化到0-1之間,也是只有c是一個浮點數的數組的時候才使用。如果沒有申明,就是默認為colors.Normalize。
7 vmin,vmax:實數,當norm存在的時候忽略。用來進行亮度數據的歸一化。
8 alpha:實數,0-1之間。
9 linewidths:也就是標記點的長度。

例子:

##  基礎函數庫
import numpy as np 

## 導入畫圖庫
import matplotlib.pyplot as plt
import seaborn as sns

x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
y_label = np.array([0, 0, 0, 1, 1, 1])


## 可視化構造的數據樣本點
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
plt.title('Dataset')
plt.show()

 

 

#改變s的參數,點的大小改變了
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=100, cmap='viridis')
plt.title('Dataset')
plt.show()

 

 

#改變market
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=100, cmap='viridis',marker='x')
plt.title('Dataset')
plt.show()

 

 

 

sns.scatterplot() 畫散點圖

seaborn.scatterplot(x=None, y=None, hue=None,
                    style=None, size=None, data=None, 
                    palette=None, hue_order=None, hue_norm=None,
                    sizes=None, size_order=None, size_norm=None, 
                    markers=True, style_order=None, x_bins=None,
                    y_bins=None, units=None, estimator=None, 
                    ci=95, n_boot=1000, alpha='auto', x_jitter=None,
                    y_jitter=None, legend='brief', ax=None, **kwargs)

參數解釋:

1 data: DataFrame 2 x,y為數據中變量的名稱; 作用:對將生成具有不同顏色的元素的變量進行分組。可以是分類或數字. 3 size:數據中的名稱  作用:根據指定的名稱(列名),根據該列中的數據值的大小生成具有不同大小的效果。可以是分類或數字。
4 style:數據中變量名稱(比如:二維數據中的列名) 作用:對將生成具有不同破折號、或其他標記的變量進行分組。
5 palette:調試板名稱,列表或字典類型  作用:設置hue指定的變量的不同級別顏色。
6 hue_order:列表(list)類型  作用:指定hue變量出現的指定順序,否則他們是根據數據確定的。
7 hue_norm:tuple或Normalize對象
8 sizes:list dict或tuple類型  作用:設置線寬度,當其為數字時,它也可以是一個元組,指定要使用的最大和最小值,會自動在該范圍內對其他值進行規范化。

例子

## 導入畫圖庫
import matplotlib.pyplot as plt
import seaborn as sns; 
sns.set()
tips = sns.load_dataset("tips")

#如果單純是data一個參數,這data的特征需要全部都是數值型 sns.scatterplot(data
=tips) #ValueError: A wide-form input must have only numeric values. sns.scatterplot( x="total_bill", y="tip",data=tips) plt.show()

 

設置hue 根據設置的類別,產生顏色不同的點的散點圖 eg.下圖為根據time分類的散點圖

sns.scatterplot(x="total_bill", y="tip", hue="time",data=tips)
plt.show()

 

設置hue 根據設置的類別,產生顏色不同的點的散點圖,設置style,使其生成不同的標記的點 eg.下圖為hue與style設置相同的分類的散點圖

sns.scatterplot(x="total_bill", y="tip",hue="time", style="time", data=tips)
plt.show()

 

 設置size ,根據設置的類別,產生大小不同的點的散點圖

sns.scatterplot(x="total_bill", y="tip", size="time",data=tips)
plt.show()

 

 使用指定的標記

markers = {"Lunch": "s", "Dinner": "X"}
sns.scatterplot(x="total_bill", y="tip", style="time",
                markers=markers,
                data=tips)
plt.show()

 

 利用pandas構建時間序列數據,從2000-1-31開始,以月為頻率,生成100條時間序列

index = pd.date_range("2000-1-11", periods=100,
                      freq="m", name="date")
data = np.random.randn(100, 4).cumsum(axis=0)
wide_df = pd.DataFrame(data, index, ["a", "b", "c", "d"])
sns.scatterplot(data=wide_df)
plt.show()

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM