legend matplotlib

legend matplotlib

参考:Legend in Matplotlib

在matplotlib中,图例(legend)是用来标识不同数据系列的标签,帮助观众理解图表中的数据。在绘制图表时,我们可以通过添加图例来说明图表中每个数据系列所代表的含义。本文将详细介绍matplotlib中如何使用图例,并提供多个示例代码以帮助读者更好地理解。

示例1:简单的折线图示例

我们先通过一个简单的折线图来演示如何添加图例。假设我们有两条折线,分别代表两个数据系列。我们可以使用plt.legend()函数来添加图例,并使用参数指定图例的标签。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend()

plt.show()

Output:

legend matplotlib

在上面的代码中,我们分别绘制了y1y2两条折线,并使用label参数为每条折线指定标签。然后调用plt.legend()函数添加图例。运行上述代码,将会得到一个简单的折线图,两条折线分别用”Line 1″和”Line 2″标记。

示例2:调整图例的位置和大小

有时候图例可能会与数据重叠,或者位置不理想。我们可以通过调整图例的位置和大小来改善图表的可视性。下面是一个调整图例位置和大小的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

plt.legend(loc='upper right', fontsize='large')

plt.show()

Output:

legend matplotlib

在上面的代码中,我们通过在plt.legend()函数中使用loc参数指定图例的位置,使用fontsize参数指定图例的字体大小。运行上述代码,将会得到一个折线图,图例位于右上角,并且字体较大。

示例3:设置图例的标题

有时候我们希望为图例添加一个标题,以便更好地说明各个数据系列的含义。我们可以通过设置title参数来为图例添加标题。下面是一个设置图例标题的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

plt.legend(title='Legend Title')

plt.show()

Output:

legend matplotlib

在上面的代码中,我们使用plt.legend()函数的title参数为图例添加了标题”Legend Title”。运行上述代码,将会得到一个带有图例标题的折线图。

示例4:自定义图例线条样式

除了添加文本标签外,我们还可以自定义图例的线条样式,以便更好地区分不同的数据系列。在plt.legend()函数中,我们可以通过handlelength参数控制图例线条的长度,通过handletextpad参数控制文本标签的间距。下面是一个自定义图例线条样式的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

line1, = plt.plot(x, y1, label='Line 1')
line2, = plt.plot(x, y2, label='Line 2')

plt.legend(handles=[line1, line2], handlelength=2, handletextpad=2)

plt.show()

Output:

legend matplotlib

在上面的代码中,我们先通过plt.plot()函数绘制了两条折线,然后将每条折线赋值给变量line1line2。最后在plt.legend()函数中使用handles参数传入这两个线条,通过handlelengthhandletextpad参数自定义图例线条的长度和间距。

示例5:隐藏图例边框

有时候我们可能希望隐藏图例的边框,使图例看起来更加清晰。我们可以通过设置frameon参数为False来隐藏图例的边框。下面是一个隐藏图例边框的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

plt.legend(frameon=False)

plt.show()

Output:

legend matplotlib

在上面的代码中,我们在plt.legend()函数中设置frameon=False,即可隐藏图例的边框。运行上述代码,将会得到一个没有边框的图例。

示例6:将图例放在外部

有时候我们可能希望将图例放在图表的外部,以节省图表空间。我们可以通过设置bbox_to_anchor参数来控制图例的位置。下面是一个将图例放在外部的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

plt.legend(loc='upper left', bbox_to_anchor=(1, 1))

plt.show()

Output:

legend matplotlib

在上面的代码中,我们通过设置loc='upper left'将图例放在左上角,然后通过设置bbox_to_anchor=(1, 1)将图例移到图表的外部。运行上述代码,将会得到一个将图例放在外部的折线图。

示例7:在散点图中添加图例

除了在折线图中添加图例外,我们还可以在散点图中添加图例,说明不同类别的数据点。下面是一个在散点图中添加图例的示例代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)

plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, label='Data Points')
plt.legend()

plt.show()

Output:

legend matplotlib

在上面的代码中,我们使用plt.scatter()函数绘制了一组随机的散点,并设置了颜色、大小和透明度。然后调用plt.legend()函数添加图例,图例标签为”Data Points”。运行上述代码,将会得到一个带有图例的散点图。

示例8:自定义图例的背景色和边框

除了调整位置和样式外,我们还可以通过设置facecoloredgecolor参数来自定义图例的背景色和边框颜色。下面是一个自定义图例背景色和边框的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

plt.legend(facecolor='lightblue', edgecolor='black')

plt.show()

Output:

legend matplotlib

在上面的代码中,我们在plt.legend()函数中设置facecolor='lightblue'edgecolor='black'分别表示图例的背景色和边框颜色。运行上述代码,将会得到一个背景色为浅蓝色、边框为黑色的图例。

示例9:同时显示多个图例

有时候我们可能需要在同一个图表中显示多个图例,以说明更多的数据系列。我们可以通过传入多个图例标签给plt.legend()函数来实现。下面是一个同时显示多个图例的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')

plt.legend(['Line 1', 'Line 2', 'Extra Line'], loc='lower right')

plt.show()

Output:

legend matplotlib

在上面的代码中,我们传入一个包含多个图例标签的列表给plt.legend()函数,同时设置loc='lower right'将图例放在右下角。运行上述代码,将会得到一个包含多个图例的折线图。

示例10:使用图例标记

除了默认的线条和颜色外,我们还可以使用特殊的图例标记来表示不同的数据系列。可以在plt.legend()函数中使用marker参数指定图例标记的样式。下面是一个使用图例标记的示例代码:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [1, 4, 9, 16, 25]
y2 = [1, 2, 3, 4, 5]

plt.plot(x, y1, label='Line 1', marker='o')
plt.plot(x, y2, label='Line 2', marker='s')

plt.legend()

plt.show()

Output:

legend matplotlib

在上面的代码中,我们在plt.plot()函数中使用marker参数分别指定了不同的图例标记,'o'表示圆形,'s'表示方形。运行上述代码,将会得到一个包含不同图例标记的折线图。

以上是关于如何在matplotlib中使用图例的详细介绍和示例代码。通过本文的讲解,希望读者能更好地理解如何添加和定制图例,使图表更加直观和清晰。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程