Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用regplot调用地物对象时如何抑制seaborn输出_Python_Matplotlib_Seaborn - Fatal编程技术网

Python 使用regplot调用地物对象时如何抑制seaborn输出

Python 使用regplot调用地物对象时如何抑制seaborn输出,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我试图在matplotlib中将数据绘制到图形和相应的轴上,随着新的工作的进行,在轴上绘制额外的图形: import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline x=np.arange(0,20) y=2*x fig,ax=plt.subplots() ax.scatter(x,x) ax.scatter(x,y) fig

我试图在matplotlib中将数据绘制到图形和相应的轴上,随着新的工作的进行,在轴上绘制额外的图形:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

x=np.arange(0,20)
y=2*x

fig,ax=plt.subplots()
ax.scatter(x,x)

ax.scatter(x,y)
fig
如果我使用seaborn的regplot,则matplotlib可以正常工作:

fig2,ax2=plt.subplots()
sns.regplot(x,x,ax=ax2,fit_reg=False)

sns.regplot(x,y,ax=ax2,fit_reg=False)
fig2

图2生成了我想要的图形,但regplot命令生成了一个空图形。有没有办法抑制regplot的空输出,或者让它在不调用图2的情况下显示更新的ax2?

regplot不会生成空图形。根据文档:

理解regplot()和lmplot()之间的区别可能是一个很好的方法 有点棘手。事实上,正如lmplot()使用的那样,它们是密切相关的 regplot()内部,并获取其大部分参数。然而, regplot()是一个轴级函数,因此它直接绘制到轴上 (当前活动轴或ax提供的轴 参数),而lmplot()是一个地物级别的函数并创建其 自己的图形,通过FacetGrid进行管理

当我执行以下操作时:

fig2,ax2 = plt.subplots()
same_fig2 = sns.regplot(x,x,ax=ax2,fit_reg=False)

same_fig2.figure is fig2
>>> True

regplot不会生成空图形。根据文档:

理解regplot()和lmplot()之间的区别可能是一个很好的方法 有点棘手。事实上,正如lmplot()使用的那样,它们是密切相关的 regplot()内部,并获取其大部分参数。然而, regplot()是一个轴级函数,因此它直接绘制到轴上 (当前活动轴或ax提供的轴 参数),而lmplot()是一个地物级别的函数并创建其 自己的图形,通过FacetGrid进行管理

当我执行以下操作时:

fig2,ax2 = plt.subplots()
same_fig2 = sns.regplot(x,x,ax=ax2,fit_reg=False)

same_fig2.figure is fig2
>>> True

您似乎正在使用带有内联后端的jupyter笔记本。在某些情况下,
regplot
触发新图形的创建,即使艺术家被添加到前一个图形中,这也会扰乱输出。我不知道为什么会发生这种情况,但我找到了一种可能对您有所帮助的解决方法,使用
plt.ioff
临时禁用图形的自动显示

plt.ioff()
fig, ax = plt.subplots()
sns.regplot(x, x, ax=ax)
fig

sns.regplot(x, 2 * x, ax=ax)
fig

您必须在创建图形之前进行调用,才能使其正常工作。之后,您必须显式显示图形。然后您可以调用以恢复默认行为。

您似乎正在使用带有内联后端的jupyter笔记本。在某些情况下,
regplot
触发新图形的创建,即使艺术家被添加到前一个图形中,这也会扰乱输出。我不知道为什么会发生这种情况,但我找到了一种可能对您有所帮助的解决方法,使用
plt.ioff
临时禁用图形的自动显示

plt.ioff()
fig, ax = plt.subplots()
sns.regplot(x, x, ax=ax)
fig

sns.regplot(x, 2 * x, ax=ax)
fig

您必须在创建图形之前进行调用,才能使其正常工作。之后,您必须显式显示图形。然后您可以调用以恢复默认行为。

可能是因为我正在jupyter笔记本中运行上述操作,但是如果我运行sns.regplot(x,y,ax=ax2,fit_reg=False)在前面代码的单独单元格中生成一个空数字。这可能是因为我正在jupyter笔记本中运行上述操作,但是如果我在前面代码的单独单元格中运行sns.regplot(x,y,ax=ax2,fit_reg=False),则生成一个空数字。感谢Goyo,就像你说的不是解决方案而是一个很好的解决方案谢谢!谢谢Goyo,就像你说的不是解决方案而是一个很好的解决方案谢谢!