2014-08-30 180 views
6

在我的常規數據分析工作中,自從seaborn軟件包變爲可用狀態後,我已切換爲使用100%python。非常感謝這個美好的包。 但是,我錯過的一個Excel圖表功能是在使用lmplot()函數時顯示polyfit等式和/或R2值。有誰知道一個簡單的方法來添加?帶公式和R2文本的Seaborn implot

+0

可能重複[我怎樣計算R平方使用Python和NumPy的?](http://stackoverflow.com/questions/893657/how-do-i-calculate-r-squared -using-python-and-numpy) – MattDMo 2014-08-30 05:36:50

+1

這不是真的重複,因爲問題是這個可以由seaborn函數自動添加,而不是如何手動計算。 – mwaskom 2014-08-30 15:16:09

回答

13

它不能自動lmplot因爲它是不確定的是什麼值應該對應,當有多個迴歸擬合(即使用一個huerowcol變量來完成。

但是,這是類似的一部分。jointplot功能默認情況下,它顯示的相關係數和p值:

import seaborn as sns 
import numpy as np 

x, y = np.random.randn(2, 40) 
sns.jointplot(x, y, kind="reg") 

但是你可以傳遞任何功能。如果你想R^2,你可以這樣做:

from scipy import stats 
def r2(x, y): 
    return stats.pearsonr(x, y)[0] ** 2 
sns.jointplot(x, y, kind="reg", stat_func=r2) 

enter image description here

+0

謝謝,我想我可以一個接一個地使用jointplot(),而不是使用lmplot()的多重圖表特性。然而,頂部/側面直方圖是否可選,以便我可以將許多變成一個lmplot()等價物。 – user3287545 2014-08-30 16:09:49

+0

什麼是p值(0,22)在這裏?我認爲皮爾遜相關性是皮爾遜價值。 – cacert 2016-01-06 20:41:13

+0

@cacert:請參閱https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.pearsonr.html - 使用兩個完全獨立的變量看到這種關聯的概率。 – naught101 2016-09-01 03:30:10