在分类图中绘制图例

Plot Legends in a Classification Graph

我在 python 中绘制了一个 3-D 图,显示了 3 个特征(比如 A、B、C),每个特征都由目标变量“y_train”着色,我想添加图表的图例显示每种颜色的相关类别,但它只显示其中一个“2”任何想法如何解决这个问题?

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(4,4))
ax = fig.add_subplot(111, projection='3d')

ax.scatter(X_train["A"],X_train["B"],X_train["C"], c = y_train)

ax.set_xlabel("A")
ax.set_ylabel("B")
ax.set_zlabel("C")

ax.legend(y_train)
plt.show()

对于自动图例创建,方法 PathCollection.legend_elements 可以完成这项工作。您只需将其解压并插入图例即可。

from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(4,4))
ax = fig.add_subplot(111, projection='3d')

scatter = ax.scatter(X_train["A"],X_train["B"],X_train["C"], c=y_train)
legend = ax.legend(*scatter.legend_elements())
ax.set_xlabel("A")
ax.set_ylabel("B")
ax.set_zlabel("C")

ax.legend(legend)
plt.show()