2015-12-24 85 views
2

我按照教程here看似最簡單的示例 - 線性關係。Seaborn情節未顯示

我對非常寬鬆的進口並不清楚,似乎也無法顯示我的情節。

my_seaborn_test.py

import numpy as np 
import seaborn as sns 

class SeabornTest(object): 
    def run_example(self): 
     sns.set(color_codes=True) 
     np.random.seed(sum(map(ord, "regression"))) 
     tips = sns.load_dataset("tips") 
     sns.lmplot(x="size", y="tip", data=tips, x_estimator=np.mean) 

在命令行:

python 
from my_seaborn_test import SeabornTest 
st = SeabornTest() 
st.run_example() 

我得到的是沉默,這樣的警告:

/home/me/anaconda3/envs/myenv/lib/python3.5/site-packages/matplotlib/__init__.py:892: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter. 
    warnings.warn(self.msg_depr % (key, alt_key)) 
+1

你可以'導入matplotlib.pyplot爲plt'然後'plt.show()'最後 –

回答

1

如對方回答上面提到的,運行在IPython中可以讓你看到它,但這不是唯一的方法。

你的方法的最後一行返回FacetGrid對象,這是你的方法退出後丟棄,這就是爲什麼你看到什麼比它產生的警告等。你需要用這個對象做一些事情(IPython在生成時自動「打印」它)。

更改方法如下所示:

def run_example(self): 
    sns.set(color_codes=True) 
    np.random.seed(sum(map(ord, "regression"))) 
    tips = sns.load_dataset("tips") 
    sns.lmplot(x="size", y="tip", data=tips, x_estimator=np.mean).fig.show() 

現在你的榜樣將打開一個圖形窗口顯示的數字

如果您想要保存它,而不是,最後一行改爲

sns.lmplot(x="size", y="tip", data=tips, x_estimator=np.mean).savefig("testing.png") 

這種行爲是matplotlib的典型特徵,因此構建在matplotlib之上。您將必須指定圖形對象需要做什麼(IPython中的%matplotlib內聯調用實際上是告訴IPython捕獲這些對象並顯示它們)。