点重叠时的PyPlot更改散点标签

时间:2019-06-28 16:30:53

标签: python-3.x matplotlib

我正在使用pyplot绘制ML项目的预测结果和实际结果。我将每个数据集的散点图作为子图,并且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 个答案:

答案 0 :(得分:1)

在这种情况下,我将仅使用NumPy索引。具体来说,首先绘制所有数据点,然后仅突出显示满足条件X==YX==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