p1=plt.plot(np.logspace(-2,1,10), trainsScores, label="train scores")
p2=plt.plot(np.logspace(-2,1,10), testScores, label="test scores")
plt.legend([p1, p2], ["Train score", "Test score"], loc='upper center',bbox_to_anchor=(0.5, -0.05),
fancybox=True, shadow=True, ncol=5)
plt.xlabel('C')
plt.ylabel('Score')
plt.show()
答案 0 :(得分:2)
你没有在控制台上打印警告吗?
UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x7f7a9a442518>] instances.
你有解释。 p1
和p2
是列表,您无法将列表作为图例句柄传递。
>>> print(type(p1))
<class 'list'>
将Line2D
个实例分配到p1
和p2
,这样就可以了。
p1, = plt.plot(np.logspace(-2,1,10), np.random.rand(10), label="train scores")
p2, = plt.plot(np.logspace(-2,1,10), np.random.rand(10), label="test scores")
plt.legend([p1, p2], ["Train score", "Test score"], loc='upper center',
bbox_to_anchor=(0.5, -0.05), fancybox=True, shadow=True, ncol=5)
plt.xlabel('C')
plt.ylabel('Score')
plt.show()