在Python Matplotlib中仅显示特定条目的图例

在Python Matplotlib中仅显示特定条目的图例

在数据可视化中,图例是非常关键的一部分,它可以帮助读者了解每个图形所代表的数据内容。而在Matplotlib中,我们可以很轻松地添加图例。但是,有时候我们需要对图例进行一些特殊的处理,例如只显示某些特定条目,这时该怎么办呢?本文将介绍如何在Matplotlib中仅显示特定条目的图例。

添加图例

在Matplotlib中,要添加图例非常简单,只需要在绘图时指定label属性,然后调用ax.legend()方法即可。例如:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [2, 4, 6, 8]

fig, ax = plt.subplots()
ax.plot(x, y, label='line')

ax.legend()
plt.show()

此时就会在图像的右上角添加一个名为“line”的图例。

仅显示特定条目的图例

在上面的例子中,我们添加了整个图形的图例,但是有时候我们只需要对某些特定的条目添加图例,这时就需要用到Matplotlib的legend()方法的一些高级用法了。

在默认情况下,legend()方法会显示所有的条目。如果我们只需要显示特定的条目,可以使用handles和labels参数来指定。

handles是一个包含所有条目句柄的列表,labels是一个包含所有条目标签的列表。我们可以根据需要选择要显示的条目,然后传递给legend()方法即可。

例如,我们有一段代码画了三种不同颜色的条形图,现在我们只需要在图例中显示红色和蓝色两种颜色的条目。代码如下:

import numpy as np
import matplotlib.pyplot as plt

N = 5
men_means = (20, 35, 30, 35, 27)
women_means = (25, 32, 34, 20, 25)
men_std = (2, 3, 4, 1, 2)
women_std = (3, 5, 2, 3, 3)
ind = np.arange(N) 
width = 0.35       

fig, ax = plt.subplots()
rects1 = ax.bar(ind, men_means, width, yerr=men_std, label='Men')
rects2 = ax.bar(ind + width, women_means, width, yerr=women_std, label='Women')

ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind + width / 2)
ax.set_xticklabels(('G1', 'G2', 'G3', 'G4', 'G5'))

# 选择要显示的条目
handles = [rects1, rects2]
labels = ['Men', 'Women']

ax.legend(handles=handles, labels=labels)

plt.show()

在legend()方法中,我们将rects1和rects2分别赋值给handles,将’Men’和’Women’分别赋值给labels,这样只有这两个条目才会被显示。

结论

在Matplotlib中,仅显示特定条目的图例可以通过使用legend()方法的handles和labels参数来实现。handles是包含所有条目句柄的列表,labels是包含所有条目标签的列表,我们可以根据需要选择要显示的条目,然后传递给legend()方法即可。这是Matplotlib图例比较高级的用法之一,可以帮助我们更好地控制图例。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程