【问题标题】:Clearing all seaborn plots each time running the code in plots tab spyder IDE每次在绘图选项卡 spyder IDE 中运行代码时清除所有 seaborn 绘图
【发布时间】:2020-06-07 05:33:22
【问题描述】:

我在一次代码中创建了一些绘图,这些绘图位于绘图选项卡中。每次重新运行时,我都尝试将其全部删除,但不知何故,以前的情节仍然没有关闭,它只会创建新的情节,而不会从上一次运行中清除以前的情节。我已经尝试使用plt.close('all'),但它不起作用。每次重新运行代码时如何清除所有绘图?

这是我的代码

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

plt.close('all')
avo_sales = pd.read_csv('avocados.csv')
avo_sales.rename(columns = {'4046':'small Hass sold','4225':'large Hass sold','4770':'xlarge Hass sold'},
                 inplace= True)

for column in avo_sales.columns[2:11]:
    sns.set()
    fig, ax = plt.subplots()
    sns.set(style="ticks")
    sns.boxplot(column, data= avo_sales)  # column is chosen here
    sns.despine(offset=10, trim=True)

【问题讨论】:

  • 不删除以前运行创建的图是一个令人困惑的情况。似乎 Spyder 开发人员正在使用与控制台相同的范例:保留历史记录直到内核重新启动(实际上这意味着永远不会),但是当控制台中的运行输出由运行命令分隔时,绘图是不可区分的。对我来说,这是一个值得商榷的选择,至少应该有一个选项可以在再次运行代码之前自动清除输出、控制台和绘图。

标签: python matplotlib plot seaborn spyder


【解决方案1】:

绘图窗格中的图像由 Spyder 处理并且是not reachable from the IPython console

一个简单的解决方案是在重新运行代码之前按下“删除图像”图标:

【讨论】:

    【解决方案2】:

    我什至不知道如何让 Spyder 将绘图放在绘图窗格中,但这里有一些可能可行的方法。

    1. 尝试禁用某些窗格选项:

    1. 尝试一些神奇的功能:

    %reset - 重置一切

    %matplotlib - 将所有绘图与您的代码内联在交互式窗口中

    %clear - 清除交互窗口

    1. 直接使用 IPython 提供帮助(通过:https://gist.github.com/stsievert/8655158355b7155b2dd8):
    from IPython import get_ipython
    
    get_ipython().magic('reset -sf')
    

    【讨论】:

    • 在第 2 点中,我将这些功能放在哪里?如果它在 python 控制台中,那么每次我想重新运行我的代码时都需要输入它?
    • 我不确定,哈哈。也许你可以在你的循环中尝试它?我在解释器中单独使用 %clear 来清理所有内容,但尚未将其集成到脚本中。如果我建议的命令不起作用,这是所有魔术命令列表的链接:https://ipython.readthedocs.io/en/stable/interactive/magics.html
    猜你喜欢
    • 2014-05-03
    • 2021-06-28
    • 2018-08-06
    • 2017-11-28
    • 1970-01-01
    • 2020-08-02
    • 2019-07-17
    • 2021-02-28
    • 2012-08-08
    相关资源
    最近更新 更多