使用 regplot 调用图形对象时如何抑制seaborn输出

Dan*_*eia 1 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
Run Code Online (Sandbox Code Playgroud)

如果我使用 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
Run Code Online (Sandbox Code Playgroud)

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

Sto*_*ica 5

您似乎正在使用带有内联后端的 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
Run Code Online (Sandbox Code Playgroud)

您必须plt.ioff在创建图形之前调用才能使其工作。之后您必须明确显示该图。然后您可以调用plt.ion以恢复默认行为。