python-3.x matplotlib.pyplot.legend()给出TypeError:“bool”对象不可调用

wn9m85ua  于 2023-10-21  发布在  Python
关注(0)|答案(3)|浏览(92)

这是我的代码来绘制我的模型精度/损失。

import matplotlib.pyplot as plt
    train_acc, = np.array(hist.history.get('acc'))
    val_acc, = np.array(hist.history.get('val_acc'))
    plt.figure()
    epochs=np.arange(len(train_acc))
    plt_train_acc = plt.plot(epochs,train_acc,'r',label='Train_Acc')
    plt_val_acc = plt.plot(epochs,val_acc,'b',label='Val_Acc')
    plt.title('Acc Trends')
    plt.ylabel('Acc')
    plt.xlabel('Epochs')
    plt.legend( [plt_train_acc,plt_val_acc],
                [train_acc,val_acc], )
    plt.savefig("trendsPlot.jpg")
    plt.show()

但我得到“类型错误:'bool' object is not callable”错误(对于plt.legend行)

mo49yndu

mo49yndu1#

我不知道为什么,但我也不得不面对同样的问题,有时当使用' Jupiter notebook ',我不得不重新启动内核再次使用。可以使用subplotsobject轴,示例代码如下。

import matplotlib.pyplot as plt1

fig, ax = plt1.subplots(figsize=(5, 3))
ax.plot([1,2,3,4,5,6,7],[44,55,66,77,88,99,11],color='orange',label='real value')
ax.plot([1,2,3,4,5,6,7],[144,155,166,177,188,199,111],color='blue',label='prediction')
ax.legend(bbox_to_anchor=(1, 1), loc='upper left', borderaxespad=0.)
fig.tight_layout()
vwhgwdsa

vwhgwdsa2#

我通过重新安装“SciPy”解决了这个问题。它不仅解决了上面的问题,还解决了我不能导入“海运”和“失踪”的问题。
顺便说一下,我很困惑,他们只发生在'jupyter笔记本',但不是在'spyder'和'pycharm'。

91zkwejq

91zkwejq3#

发生这种情况的原因是你错误地使用了plt.legend=而不是plt.legend()在过去,这将导致函数被分配给你第一次输入的值,并将函数更改为变量,这就是为什么它说函数是一个bool变量,不可调用,据我所知,修复它的唯一方法是重新启动内核重置模块。

相关问题