2014-11-06 27 views
0

我有一個pandas數據集,其中包含一個整數和浮點值:情節聯合分佈

>>> df2[['AGE_REF', 'RETSURV']].dtypes 
AGE_REF  int64 
RETSURV float64 
dtype: object 

我想用繪製大熊貓的聯合分佈。我沒有看到一個簡單的熊貓可視化聯合分佈的方式,但我偶然發現seaborn。所以,我想調整,我已經找到了我的目的,代碼:

>>> import seaborn as sns 
>>> sns.jointplot('AGE_REF', "RETSURV", df2, 
       kind="hex") 
Traceback (most recent call last): 
    File "<input>", line 2, in <module> 
    File "/usr/local/lib/python2.7/site-packages/seaborn/distributions.py", line 969, in jointplot 
    gridsize = int(np.mean([x_bins, y_bins])) 
OverflowError: cannot convert float infinity to integer 

我發現了一個相關bug report,所以我試圖按照替代方法有 - 沒有成功:

>>> sns.jointplot('AGE_REF', "RETSURV", df2, 
       kind="hex", marginal_kws={"bins": 10}) 
Traceback (most recent call last): 
    File "<input>", line 2, in <module> 
    File "/usr/local/lib/python2.7/site-packages/seaborn/distributions.py", line 969, in jointplot 
    gridsize = int(np.mean([x_bins, y_bins])) 
OverflowError: cannot convert float infinity to integer 

回答

1

默認hexbin gridsize使用與直方圖相同的參考規則計算,因此如果您的數據不知何故違反了這些假設,則需要直接設置:

sns.jointplot(x, y, kind="hex", 
       joint_kws={"gridsize": 10}, 
       marginal_kws={"bins": 10})