for color, label in zip('bgrm', [0, 1, 2, -1]):
    subset = df[df.subset == label]
plt.scatter(subset.col1, subset.col2, s=120, c=color, label=str(label))
plt.legend()
создание точечных диаграмм matplotlib из фреймов данных в пандах Python