Q:python使用Axes3D画三维图加入legend图例时报错AttributeError: 'Poly3DCollection' object has no attribute '_edgecolors2d'
报错源代码
fig = plt.figure() ax = Axes3D(fig) X, Y = np.meshgrid(3, 3) ax.plot_surface(X, Y, np.zeros([3,3], label="surf") ax.legend() plt.show()
A:在ax.legend()加入如下代码
surf._facecolors2d=surf._facecolors3d surf._edgecolors2d=surf._edgecolors3d
修改后代码
fig = plt.figure() ax = Axes3D(fig) X, Y = np.meshgrid(3, 3) surf = ax.plot_surface(X, Y, np.zeros([3,3], label="surf") surf._facecolors2d=surf._facecolors3d surf._edgecolors2d=surf._edgecolors3d ax.legend() plt.show()