我正在使用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()
答案 0 :(得分:1)
在这种情况下,我将仅使用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()