首页 > 解决方案 > Matplotlib 图例中出现相同的符号

问题描述

我正在 couseera 学习机器学习课程。我已经为数据绘制了一个图并试图制作一个图例。我在网上参考并使用了这种格式

plt.figure(1)
plt.title('input data plot')
plt.xlabel('Exam 1 marks')
plt.ylabel('Exam 2 marks')
plt.plot(X[temp0,0],X[temp0,1],'or')
plt.plot(X[temp1,0],X[temp1,1],'xb')
plt.plot(x_boundary,y_boundary,'-g')
plt.legend(['Not admitted','Admitted','Decision Boundary'],numpoints=1)
plt.show()

所有类型的输出都具有相同的符号同样的传说

然后我使用了下面给出的另一种格式

plt.figure(1)
plt.title('input data plot')
plt.xlabel('Exam 1 marks')
plt.ylabel('Exam 2 marks')
plt.plot(X[temp0,0],X[temp0,1],'or',label='Not admitted')
plt.plot(X[temp1,0],X[temp1,1],'xb',label='Admitted')
plt.plot(x_boundary,y_boundary,'-g',label='Decision Boundary')
plt.legend()
plt.show()

结果是所有数据的图例许多传说

谁能帮我解决这个问题。先感谢您。

标签: pythonpython-3.xmatplotlib

解决方案


如果没有更多信息,我不能肯定地说,但我强烈怀疑您的问题出在您的数据上。如果您的值数组包含在另一个数组中,您将获得在第二个示例中看到的行为。

查看此示例以了解不同之处:

import matplotlib.pyplot as plt
import random

# Note the extra array brackets. This is not good.
X = [[random.randint(0,10) for i in range(0,5)]]
Y = [[random.randint(0,10) for i in range(0,5)]]

X1 = [random.randint(0,10)for i in range(0,5)]
Y1 = [random.randint(0,10)for i in range(0,5)]

plt.plot(X,Y,'or',label='Double Array')
plt.plot(X1,Y1,'xb',label='Single Array')

plt.legend()
plt.show()

双数组弄乱图例的示例


推荐阅读