我正在使用 matplot lib 生成一个绘图,通过执行以下操作来绘制许多点(~几千个):
labels = []
for item in items:
label = item[0]
labels.append(label)
plt.plot(item[1][0], item[1][1], 'ro', c = colors[item], label = str(label))
然后通过执行以下操作生成图例:
plt.legend([str(x) for x in np.unique(labels)])
但是,对于图例中的每个标签,对应的颜色是相同的(不是图中的颜色)。有没有办法手动设置图例的颜色。
我附上了一个示例图来说明这个问题。
--编辑--
只是按照某些人的建议调用 plt.legend()
似乎并不能解决我的问题,它为每个点添加了一个图例条目。有关示例输出,请参见下图:
最佳答案
这应该有效:
labels = []
for item in items:
label = item[0]
plt.plot(item[1][0], item[1][1], 'o', c=colors[item], label=str(label))
plt.legend()
如果您在创建艺术家时直接指定标签(在调用 plot
时),则可以不带参数调用 plt.legend()
。它将遍历当前轴中的艺术家并使用他们的标签。这样图例中的颜色就会与图中的颜色相匹配。
关于python - matplotlib 设置图例颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31407207/