matplotlib.pyplot.subplots()clear和clf kwargs是否存在已知问题?

时间:2019-01-30 03:27:48

标签: python matplotlib

我正在运行一个脚本,该脚本使用以下命令为单个图形中的一组轴创建图形和轴手柄:

import matplotlib.pyplot as plt
fig, ax = plt.subplots(num=1, clear=True, clf=True)

使用自动图形(即图形显示在其自己的窗口中),并且存在两个问题:

  1. 运行时,该数字实际上并不清楚-每次运行时,轴框架和刻度标签只会变暗。如果我将代码更改为:

    import matplotlib.pyplot as plt
    fig, ax = plt.subplots(num=1, clear=True, clf=True)
    fig.tight_layout()
    

    在这种情况下,每次我运行代码时,轴都占据图形窗口右上角的一小部分。

  2. 如果我删除图形并重新运行代码,则会收到错误消息:

    __init__() got an unexpected keyword argument 'clear'
    

    __init__() got an unexpected keyword argument 'clf'
    

如果我跑步,一切正常:

import matplotlib.pyplot as plt
fig, ax = plt.subplots(num=1)
fig.clf() 
fig, ax = plt.subplots(num=1, clear=True, clf=True)
fig.tight_layout()

但是这似乎在某种程度上是重复的……我敢说……非pythonic?

出于完整性考虑:在64位Windows计算机上使用Anaconda Spyder for Python 3.6;明天将尝试其他版本和操作系统。

编辑:问题似乎与matplotlib 2.2.3有关,因为与matplotlib 3.0.2无关。

1 个答案:

答案 0 :(得分:0)

摘自文档https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplot.html

  

Figure.add_subplot的包装器,在行为上有所说明   在“注释”部分。

在源代码中,clearclfFigure的方法,因此在第一次调用subplots()时,Figure对象不是存在,它不能调用clearclf。但是,第二个调用及其后的对象存在。