Тот же символ появляется в легендах Matplotlib - PullRequest
0 голосов
/ 17 октября 2018

Я изучаю курс машинного обучения в 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()

Вывод с одинаковым символом для всех типов same legend

Затем я использовал другой формат, указанный ниже

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()

Это привело к легенде для всех данных many legends

Может кто-нибудь помочь мне исправить это.Заранее спасибо.

1 Ответ

0 голосов
/ 17 октября 2018

Не могу сказать наверняка без дополнительной информации, но я сильно подозреваю, что ваша проблема с вашими данными.Если ваш массив значений содержится в другом массиве, вы получите поведение, которое вы видите во втором примере.

Посмотрите на этот пример, чтобы увидеть разницу:

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()

Example of double array's messing up legends

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...