python - 使用一个“绘图”调用绘制多条曲线时的一个图例条目
问题描述
我通过使用一个plot
调用绘制多条曲线来创建一个网格:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
x = np.array([[0,1], [0,1], [0,1]])
y = np.array([[0,0], [1,1], [2,2]])
ax.plot([0,1],[0,2], label='foo', color='b')
ax.plot(x.T, y.T, label='bar', color='k')
ax.legend()
plt.show()
生成的图例具有与曲线一样多的“条形”条目(见下文)。我希望每次plot
通话只有一个图例条目(在这种情况下只有一次“条形图”)。
我希望这样我可以有其他绘图命令(例如,绘制'foo'曲线的那个),如果它们有标签,它们的曲线会自动包含在图例中。我特别想避免在构造图例时手动选择句柄,而是使用 matplotlib 的功能通过是/否来处理这个问题,包括在绘图时包含一个标签。我怎样才能做到这一点?
解决方案
这是一种可能的解决方案:您可以使用下划线不产生图例条目的事实。因此,将除第一个标签之外的所有标签都设置为"_"
抑制那些出现在图例中的标签。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
x = np.array([[0,1], [0,1], [0,1]])
y = np.array([[0,0], [1,1], [2,2]])
ax.plot([0,1],[0,2], label='foo', color='b')
lines = ax.plot(x.T, y.T, label='bar', color='k')
plt.setp(lines[1:], label="_")
ax.legend()
plt.show()
推荐阅读
- php - 尝试通过按钮发布
- javascript - AmCharts 3 - 首次运行时删除侦听器(自身内部的引用函数)
- python - 程序在创建之前检查文件是否存在
- dropwizard - 用千分尺测量事件发生率
- javascript - setInterval 和 clearInterval 不起作用
- reactjs - 如何在正文 html.js 的头部和末尾添加脚本标签?
- java - Docker compose以状态1退出,spring boot在日志中启动并立即结束,但无法确定失败原因
- assembly - 标志标志不会将值更改为“1”程序集
- rest - 我可以通过 oauth 授权在本地访问我的休息服务吗?还是必须有oauth设置才能通过邮递员运行Rest?
- c++ - >> 双精度数组的运算符?