Как я могу установить цвет и маркер в один параметр для функции разброса в Python - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь использовать разные цвета и маркеры для ряда данных на основе их меток:

Я написал:

   for x,l in zip(X,labels):
        ax.scatter(x[0],x[1], 'xb' if l == -1 else 'or')

под 'xb' я подразумеваю 'x' для маркера и 'b' для цвета, но это не работает.

Итак, я написал это как:

for x,l in zip(X,labels):
    ax.scatter(x[0],x[1], marker='x' if l == -1 else 'o', c='r' if l == -1 else 'b')

Какой правильный параметр без использования двух отдельных именованных параметров? Или любой другой трюк, чтобы сократить утверждение.

1 Ответ

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

До сих пор я не видел конструкцию if-else в функции plot. Я бы изменил список меток:

X = [(1, 4), (2, 6), (3, 2), (4, 8), (5, 3), (6,1)]
labels = [-1, 0, 0, -1, 0, -1]

fig, ax = plt.subplots()
labels = ["xb" if item == -1 else "or" for item in labels]

for x,l in zip(X, labels):
    ax.plot(x[0],x[1], l)

plt.show()

Стоит также отметить, что для разброса и построения диаграммы используются разные соглашения для определения маркеров. Ярлыки на графике не работают на разброс , где размер s, цвет c и стиль маркера m должны предоставляться отдельно.

...