Matplotlib:检查空图

jmd*_*_dk 3 python matplotlib figure python-3.x

我有一个循环加载并绘制一些数据,如下所示:

import os
import numpy as np
import matplotlib.pyplot as plt

for filename in filenames:
    plt.figure()
    if os.path.exists(filename):
        x, y = np.loadtxt(filename, unpack=True)
        plt.plot(x, y)
    plt.savefig(filename + '.png')
    plt.close()
Run Code Online (Sandbox Code Playgroud)

现在,如果文件不存在,则不会加载或绘制数据,但仍会保存(空)图。在上面的例子中,我可以简单地通过pltif语句中包含所有调用来纠正这个问题。我的实际用例涉及更多,所以我正在寻找一种方法来询问matplotlib/ plt/图形/轴 图形/轴是否完全为空。就像是

for filename in filenames:
    plt.figure()
    if os.path.exists(filename):
        x, y = np.loadtxt(filename, unpack=True)
        plt.plot(x, y)
    if not plt.figure_empty():  # <-- new line
        plt.savefig(filename + '.png')
    plt.close()
Run Code Online (Sandbox Code Playgroud)

Gui*_*ute 6

要检查斧头是否具有使用plot()以下方法绘制的数据:

if ax.lines:
Run Code Online (Sandbox Code Playgroud)

如果它们是使用scatter()代替绘制的:

if ax.collections:
Run Code Online (Sandbox Code Playgroud)


Den*_*loe 2

检查图中是否有任何轴符合fig.get_axes()您的目的吗?

fig = plt.figure()
if fig.get_axes():
    # Do stuff when the figure isn't empty.
Run Code Online (Sandbox Code Playgroud)