Matplotlib添加标题到图例
参考:matplotlib add title to legend
Matplotlib是Python中最常用的绘图库之一,它提供了一套完整的绘图API,可以用来绘制各种静态、动态、交互式的图表。在绘制图表时,我们经常需要添加图例来标识不同的数据系列。而在某些情况下,我们可能还需要为图例添加标题,以便更好地解释图例的含义。本文将详细介绍如何在Matplotlib中为图例添加标题。
1. 基本用法
在Matplotlib中,我们可以使用legend()
函数来添加图例。这个函数有一个名为title
的参数,我们可以通过这个参数来为图例添加标题。下面是一个简单的例子:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(title='www.how2matplotlib.com')
plt.show()
Output:
在这个例子中,我们首先生成了一个从0到10的等差数列x
,然后计算了x
的正弦值和余弦值,分别保存在y1
和y2
中。然后,我们使用plot()
函数绘制了两条曲线,并通过label
参数为每条曲线添加了图例标签。最后,我们使用legend()
函数添加了图例,并通过title
参数为图例添加了标题。
2. 自定义图例标题样式
在Matplotlib中,我们还可以自定义图例标题的样式,包括字体大小、颜色、样式等。我们可以通过title_fontsize
和title_color
参数来设置图例标题的字体大小和颜色。下面是一个例子:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(title='www.how2matplotlib.com', title_fontsize='large', title_color='red')
plt.show()
在这个例子中,我们使用了title_fontsize
参数将图例标题的字体大小设置为’large’,并使用title_color
参数将图例标题的颜色设置为’red’。
3. 使用Legend类添加图例标题
除了使用legend()
函数,我们还可以使用Legend
类来创建并添加图例。Legend
类的构造函数接受一个title
参数,我们可以通过这个参数来为图例添加标题。下面是一个例子:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.legend import Legend
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
line1, = plt.plot(x, y1, label='sin(x)')
line2, = plt.plot(x, y2, label='cos(x)')
legend = Legend(plt.gca(), [line1, line2], ['sin(x)', 'cos(x)'], title='www.how2matplotlib.com')
plt.gca().add_artist(legend)
plt.show()
Output:
在这个例子中,我们首先生成了两条曲线,并将它们的引用保存在line1
和line2
中。然后,我们创建了一个Legend
对象,将曲线和标签作为参数传入,并通过title
参数为图例添加了标题。最后,我们使用add_artist()
函数将图例添加到当前的Axes对象中。
4. 使用Legend类自定义图例标题样式
与legend()
函数类似,我们也可以使用Legend
类来自定义图例标题的样式。我们可以通过set_title()
方法来设置图例标题,并通过get_title()
方法来获取图例标题对象,然后使用set_fontsize()
和set_color()
方法来设置字体大小和颜色。下面是一个例子:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.legend import Legend
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
line1, = plt.plot(x, y1, label='sin(x)')
line2, = plt.plot(x, y2, label='cos(x)')
legend = Legend(plt.gca(), [line1, line2], ['sin(x)', 'cos(x)'])
legend.set_title('www.how2matplotlib.com', prop={'size': 'large', 'color': 'red'})
plt.gca().add_artist(legend)
plt.show()
在这个例子中,我们首先创建了一个Legend
对象,然后使用set_title()
方法设置了图例标题,并通过prop
参数设置了字体大小和颜色。最后,我们使用add_artist()
函数将图例添加到当前的Axes对象中。
总结起来,Matplotlib提供了多种方法来为图例添加标题,并允许我们自定义图例标题的样式。