Seaborn情节没有显示出来

时间:2015-12-24 00:49:48

标签: python seaborn

我正在关注教程here,看似最简单的例子 - 线性关系。

我不清楚非常宽松的进口,似乎无法展示我的情节。

downgrade

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()

1 个答案:

答案 0 :(得分:2)

如上所述,在另一个答案中,在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之上构建的seaborn。您必须指定需要对图形对象执行的操作(IPython中的%matplotlib内联调用实际上是在告诉IPython捕获这些对象并显示它们。)