Python matplotlib对所有后续绘图使用单图形窗口

Python matplotlib对所有后续绘图使用单图形窗口,python,matplotlib,Python,Matplotlib,我正在寻找一个工作流程,重复使用一个窗口来显示所有的绘图。后续绘图仅覆盖现有绘图,不阻止repl。Rstudio只有一个绘图窗格,始终显示最后一个绘图。python repl(而不是笔记本)是否可以实现类似的工作流 例如,运行以下代码将创建两个窗口:一个用于图1,另一个用于图2。我希望第二个图形替换现有图形,并且只使用一个窗口进行所有打印 import seaborn as sns import matplotlib.pyplot as plt data = sns.load_dataset('

我正在寻找一个工作流程,重复使用一个窗口来显示所有的绘图。后续绘图仅覆盖现有绘图,不阻止repl。Rstudio只有一个绘图窗格,始终显示最后一个绘图。python repl(而不是笔记本)是否可以实现类似的工作流

例如,运行以下代码将创建两个窗口:一个用于图1,另一个用于图2。我希望第二个图形替换现有图形,并且只使用一个窗口进行所有打印

import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('titanic')

sns.pairplot(data[['fare','class']])
plt.show(block=False)

sns.pairplot(data[['fare','age']])
plt.show(block=False)

在谷歌搜索了很多次之后,我终于找到了解决问题的方法。诀窍是从一开始就获得对图形和轴的引用,以便在后续绘图中进行操作

另一个关键细节是将axis对象传递给绘图方法。您可以使用
图gca()
获得当前图形上轴的参考:

import matplotlib.pyplot as plt
import seaborn as sns

data = sns.load_dataset('titanic')

# create initial references
fig, ax = plt.subplots()

# pass in the current axis to the `ax` argument
sns.scatterplot(x=data['age'], y =data['age'], ax=fig.gca())
plt.draw()
plt.show(block=False)

# need to clear the figure between calls
fig.clf()
sns.scatterplot(x=data['age'], y =data['fare'], ax=fig.gca())
plt.draw()