Метка разброса PyPlot, когда точки перекрываются - PullRequest
1 голос
/ 28 июня 2019

Я отображаю мои прогнозируемые и фактические результаты проекта ML с использованием pyplot.У меня есть график рассеяния каждого набора данных в качестве подплота, а значения Y являются элементами [-1, 0, 1].Я хотел бы изменить цвет точек, если обе точки имеют одинаковые значения X и Y, но я не уверен, как это реализовать.Вот мой код:

import matplotlib.pyplot as plt

Y = [1, 0, -1, 0, 1]
Z = [1, 1, 1, 1, 1]

plt.subplots()
plt.title('Title')
plt.xlabel('Timestep')
plt.ylabel('Score')
plt.scatter(x = [i for i in range(len(Y))], y = Y, label = 'Actual')
plt.scatter(x = [i for i in range(len(Y))], y = Z, label = 'Predicted')
plt.legend()

1 Ответ

1 голос
/ 28 июня 2019

Я бы просто использовал индексирование NumPy в этом случае.В частности, сначала нанесите на график все точки данных, а затем дополнительно выделите только те точки, которые удовлетворяют условию X==Y и X==Z

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()

Y = np.array([1, 0, -1, 0, 1])
Z = np.array([1, 1, 1, 1, 1])

X = np.arange(len(Y))

# Labels and titles here

plt.scatter(X, Y, label = 'Actual')
plt.scatter(X, Z, label = 'Predicted')

plt.scatter(X[X==Y], Y[X==Y], color='black', s=500)
plt.scatter(X[X==Z], Z[X==Z], color='red', s=500)
plt.xticks(X)
plt.legend()
plt.show()

enter image description here

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