python - matplotlib 设置图例颜色

标签 python matplotlib plot

我正在使用 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)])

但是,对于图例中的每个标签,对应的颜色是相同的(不是图中的颜色)。有没有办法手动设置图例的颜色。

我附上了一个示例图来说明这个问题。 enter image description here

--编辑-- 只是按照某些人的建议调用 plt.legend() 似乎并不能解决我的问题,它为每个点添加了一个图例条目。有关示例输出,请参见下图: enter image description here

最佳答案

这应该有效:

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/

相关文章:

python - 测试的 SQL 脚本上的 SQLite3 语法错误

python - 如果不重写 Python/Perl 脚本,我如何在 bash 脚本中通过管道将输出连接在一起?

python - Emacs:加载后评估代码始终被执行

python - 增加 matplotlib 中图例线的线宽

python - 使用 Python,文件

matlab - 将重复行移动到矩阵中的新列

r - 如何指定折线图的起点和终点

python - 组织 Flask 项目

python - matplotlib - 更改图大小但保持字体大小不变

javascript - HighChart 时间戳突出显示现在的时间