matplotlib绘图引起 GUI绘图冲突,QCoreApplication::exec: The event loop is already running 已解决

这个警告通常是因为程序中使用了 QApplication.exec()QGuiApplication.exec() 方法来启动 Qt 的事件循环,然后尝试在 Qt 事件循环运行的同时再次启动事件循环。在本例中,这是因为 plt.show() 本身已经启动了一个事件循环。

解决方案:避免在函数中使用 plt.show()

另一种方法是不在 plot_numpy_array() 函数中使用 plt.show(),而是在调用该函数的地方来控制何时显示图形。

以下是修改后的代码:

def plot_numpy_array(data, xlabel=None, ylabel=None, legend=None):
    x = np.arange(len(data))
    fig, ax = plt.subplots()
    ax.plot(x, data, label=legend)
    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    ax.legend()
    # 不在函数中使用 plt.show(),而是在调用该函数的地方显示图形
    return fig

# 调用 plot_numpy_array() 函数显示图形
fig = plot_numpy_array(data, xlabel='X Label', ylabel='Y Label', legend='Legend')
fig.show()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值