【发布时间】:2015-05-28 15:46:50
【问题描述】:
我在 matplotlib 中有一个 3 维图,输入数据由 3 个 x、y、z 坐标列表和一个标签列表组成,该列表指示每个坐标集也属于哪个类。从标签中,我创建了一个颜色列表,然后为每个坐标分配颜色。:
x_cords = projected_train[:,0]
y_cords = projected_train[:,1]
z_cords = projected_train[:,2]
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
colors = ['#008080',...,'#000000']
plotlabels = ['Acer campestre L',...,'Viburnum tinus']
#Creating colorlist from labels indexes
colors = np.asarray(colors)
colorslist = colors[labels]
ax.scatter(x_cords, y_cords, z_cords, color=colorslist)
plt.show()
标签列表的创建方式与颜色列表相同:
labels = np.asarray(labels)
plotlabelslist = plotlabels[labels]
但是当我将标签添加到情节时:
ax.scatter(x_cords, y_cords, z_cords, color=colorslist, label=plotlabelslist)
plt.legend(loc='upper left')
我得到以下结果:
我尝试了其他添加标签的方法,但没有任何运气,是否有任何方法可以添加标签列表,就像添加颜色一样,或者我必须一个一个地绘制每个类并添加标签,就像来自:How to get different colored lines for different plots in a single figure?
的回答一样我们将不胜感激任何对正确方向的帮助或推动!
【问题讨论】:
-
我知道这是一个解决方案,但正如问题中所述,我正在寻找一种避免这种情况的方法
-
你可以使用颜色条,像这样stackoverflow.com/questions/14777066/…
-
这将是一个解决方案,如果我可以将它与我的颜色列表相匹配
标签: python matplotlib plot