No handles with labels found to put in legend.
时间: 2023-08-08 10:09:55 浏览: 139
这个错误通常出现在绘图时没有为图例指定标签。您需要在绘图函数中添加`label`参数来指定标签,然后调用`legend()`函数添加图例。
例如,对于以下绘图代码:
```python
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [2, 4, 6, 8]
plt.plot(x, y)
plt.legend()
plt.show()
```
会出现 `No handles with labels found to put in legend` 的错误,因为没有指定标签。要修复这个问题,您需要添加一个标签并指定图例位置:
```python
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [2, 4, 6, 8]
plt.plot(x, y, label='line 1') # 添加标签
plt.legend(loc='upper left') # 指定图例位置
plt.show()
```
这样就可以成功显示图例了。
相关问题
no handles with labels found to put in legend
这个错误提示一般是由于在代码中使用了`legend`函数,但是没有给曲线设置标签。因此,程序不知道应该把哪个曲线对应到图例中的哪个标签上。解决方法是在绘制曲线时给它们设置标签,例如:
```python
import matplotlib.pyplot as plt
x = [1, 2, 3]
y1 = [4, 5, 6]
y2 = [7, 8, 9]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend()
plt.show()
```
这样,每条曲线就会显示在图例中,并且对应到相应的标签上。如果不需要图例,也可以直接去掉`legend`函数即可。
No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
这个警告信息出现在 Python Matplotlib 库中,通常表示在图例中没有找到标签。这可能是因为没有给要显示的数据添加标签,或者标签以下划线开头,被忽略了。
下面是一些可能导致该警告信息出现的常见情况:
1. 没有为要显示的数据添加标签。可以通过在 plot 函数或 scatter 函数中使用 label 参数来添加标签。例如:
```python
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y, label='line')
plt.legend()
plt.show()
```
2. 标签以下划线开头被忽略了。可以通过在 legend 函数中使用 handles 和 labels 参数来手动添加标签。例如:
```python
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
line, = plt.plot(x, y)
plt.legend(handles=[line], labels=['line'])
plt.show()
```
在这个例子中,我们使用了 `line, = plt.plot(x, y)` 来获取 plot 函数的返回值,然后将其作为参数传递给 legend 函数。
总之,要解决这个警告信息,需要确保所有要显示的数据都有标签,并且标签不以下划线开头。如果需要手动添加标签,可以使用 handles 和 labels 参数来完成。
阅读全文