Seaborn入門


Seaborn入門

Seaborn是基於matplotlib的python數據可視化庫,提供更高層次的API封裝,使用起來更加方便快捷。

displot

displot()集成了hist直方圖和kde核函數估計的功能,函數如下:

seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)
'''
a:Series, 1d-array or list. 數據來源
bins:矩形圖數量
hist:是否顯示直方圖
kde:是否顯示核函數估計圖
rug:控制是否顯示觀察的邊際毛毯
fit:控制擬合的參數分布圖形
vertical:顯示正交控制
'''
#例
In [41]: x = np.random.normal(size=200)

In [42]: sns.distplot(x)
Out[42]: <matplotlib.axes._subplots.AxesSubplot at 0x11aa43490>

In [43]: plt.show()

barplot與countplot

barplot描述某種變量分布的平均值

seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,ci=95, n_boot=1000, units=None, orient=None, color=None, palette=None, saturation=0.75, errcolor='.26', errwidth=None, capsize=None, ax=None, estimator=<function mean>,**kwargs)
'''
x, y, hue:設置x,y以及顏色控制的變量
data:輸入的數據集
order, hue_order:控制變量繪圖的順序
estimator:設置對每類變量的計算函數,默認為平均值,可修改為max、median、max等
ax:設置子圖位置
orient:"v"|"h",控制繪圖的方向,水平或者豎直
capsize:設置誤差棒帽條的寬度
'''
#例
In [58]: tips = sns.load_dataset("tips") #載入自帶數據集

In [59]: ax = sns.barplot(x="day", y="total_bill", hue="sex", data=tips)

In [60]: plt.show()

countplot用來計數

seaborn.countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)
'''
設置方法跟barplot類似
'''
#例
In [68]: titanic = sns.load_dataset("titanic")

In [69]: sns.countplot(x="alone", hue="who", data=titanic)
Out[69]: <matplotlib.axes._subplots.AxesSubplot at 0x126b82590>

In [70]: plt.show()

boxplot與violinplot

箱式圖

可以表示數據的位置及分散情況,還能區分異常點

seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, width=0.8, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)
'''
參數與前面一致
'''
#例
In [76]:sns.boxplot(x="day", y="total_bill", hue="smoker",data=tips)

In [77]:plt.show() #外面的點為異常點

琴式圖

琴式圖的信息量更大,還加上了概率分布

sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips)

線性回歸模型

implot是一種集合基礎繪圖與基於數據建立回歸模型的繪圖方法。旨在創建一個方便擬合數據集回歸模型的繪圖方法,利用'hue'、'col'、'row'參數來控制繪圖變量。

seaborn.lmplot(x, y, data, hue=None, col=None, row=None, palette=None, col_wrap=None, size=5, aspect=1, markers='o', sharex=True, sharey=True, hue_order=None, col_order=None, row_order=None, legend=True, legend_out=True, x_estimator=None, x_bins=None, x_ci='ci', scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=False, x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None)
'''
hue, col, row:strings 定義數據子集的變量,並在不同的圖像子集中繪制
size:scalar 定義子圖的高度
markers:定義散點的圖標
col_wrap:設置每行子圖數量
order:多項式回歸,設定指數,可以用多項式擬合
logistic:邏輯回歸
logx:轉化為log(x)
'''
#例
sns.lmplot(x="total_bill", y="tip", col="day", hue="day",data=tips, col_wrap=2, size=3)

小結

Seaborn簡潔而強大,和pandas、numpy組合使用效果更佳,以上介紹了一些常用功能,其他的就即用即查吧。

值得注意的是,Seaborn並不是matplotlib的代替品,很多時候仍然需要使用matplotlib的。


免責聲明!

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



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