图中有多个元素使用了同一个标签时,如何仅显示一个
时间: 2024-03-15 17:44:25 浏览: 19
如果在图中有多个元素使用了同一个标签,而你希望仅显示一个标签,可以通过在调用 `plt.legend()` 函数时,传递一个额外的参数 `handles`,将重复的标签对应的元素去重。例如:
```python
import matplotlib.pyplot as plt
x1 = [1, 2, 3]
y1 = [4, 5, 6]
x2 = [2, 3, 4]
y2 = [7, 8, 9]
plt.scatter(x1, y1, c='r', marker='o', s=50, label='数据集')
plt.scatter(x2, y2, c='b', marker='s', s=50, label='数据集')
plt.legend(scatterpoints=1, handles=plt.gca().get_legend_handles_labels()[0])
plt.show()
```
这里先用 `plt.scatter` 函数绘制了两个数据集,并将它们的标签都设为了 `'数据集'`。然后调用 `plt.legend()` 函数时,通过 `handles` 参数传递了一个列表,其中包含了两个元素 `plt.gca().get_legend_handles_labels()[0]`。这个表达式的作用是获取当前图中的所有元素的句柄,并从中提取出标签句柄,即 `handles`。在这个例子中,由于两个元素的标签相同,因此它们的标签句柄也相同,只需要将其中一个句柄传递给 `handles` 参数即可。最后再调用 `plt.legend()` 函数,设置 `scatterpoints=1`,就可以将标签仅显示一次了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)