Matplotlib 显示图例
在使用matplotlib绘制图表时,图例是非常重要的一部分,它可以帮助我们更好地理解图表中的数据内容。在本文中,我们将详细介绍如何使用matplotlib显示图例,并提供多个示例代码来帮助读者更好地理解。
基本图例
首先,让我们看一个最基本的示例,如何在matplotlib中显示图例。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend()
plt.show()
代码运行结果:
在这个示例中,我们使用plt.legend()
来显示图例,label
参数用于指定每条线的标签。运行以上代码,我们将看到一个包含两条线的图表,并且有相应的图例显示。
自定义图例位置
有时候,我们希望将图例放在图表的不同位置,matplotlib提供了多种选项来实现这一点。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(loc='upper right')
plt.show()
代码运行结果:
在这个示例中,我们使用loc
参数来指定图例的位置,这里我们将图例放在右上角。运行以上代码,我们将看到图例出现在右上角。
自定义图例样式
除了位置,我们还可以自定义图例的样式,比如字体大小、边框颜色等。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(loc='upper right', fontsize='large', frameon=False)
plt.show()
代码运行结果:
在这个示例中,我们使用fontsize
参数来指定图例的字体大小,frameon
参数来控制是否显示图例的边框。运行以上代码,我们将看到图例的字体变大,并且没有边框。
多列图例
有时候,我们希望将图例显示在多列,这样可以更好地利用空间。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(loc='upper right', ncol=2)
plt.show()
代码运行结果:
在这个示例中,我们使用ncol
参数来指定图例显示的列数,这里我们将图例显示在两列。运行以上代码,我们将看到图例显示在两列。
自定义图例标记
除了文本标签,我们还可以使用不同的标记来表示不同的线条,这样可以更好地区分不同的数据。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1', marker='o')
plt.plot(x, y2, label='Line 2', marker='s')
plt.legend()
plt.show()
代码运行结果:
在这个示例中,我们使用marker
参数来指定不同线条的标记,o
表示圆形,s
表示正方形。运行以上代码,我们将看到两条线分别用圆形和正方形标记。
图例标题
有时候,我们希望给图例添加一个标题,以便更好地说明图例的内容。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(title='Lines')
plt.show()
代码运行结果:
在这个示例中,我们使用title
参数来指定图例的标题为Lines
。运行以上代码,我们将看到图例下方有一个标题。
隐藏图例
有时候,我们希望隐藏图例,可以通过设置label
为空字符串来实现。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='')
plt.legend()
plt.show()
代码运行结果:
在这个示例中,我们将第二条线的label
设置为空字符串,这样就隐藏了第二条线的图例。运行以上代码,我们将看到只有一条线的图例。
图例边框
有时候,我们希望调整图例的边框样式,比如边框宽度、颜色等。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(edgecolor='red', linewidth=2)
plt.show()
在这个示例中,我们使用edgecolor
参数来指定图例的边框颜色为红色,linewidth
参数来指定边框宽度为2。运行以上代码,我们将看到图例的边框变为红色且宽度增加。
图例背景色
有时候,我们希望调整图例的背景色,可以通过设置facecolor
参数来实现。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(facecolor='lightblue')
plt.show()
代码运行结果:
在这个示例中,我们使用facecolor
参数来指定图例的背景色为浅蓝色。运行以上代码,我们将看到图例的背景色变为浅蓝色。
图例透明度
有时候,我们希望调整图例的透明度,可以通过设置alpha
参数来实现。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(alpha=0.5)
plt.show()
在这个示例中,我们使用alpha
参数来指定图例的透明度为0.5。运行以上代码,我们将看到图例变得半透明。
图例阴影
有时候,我们希望给图例添加一些阴影效果,可以通过设置shadow
参数来实现。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(shadow=True)
plt.show()
代码运行结果:
在这个示例中,我们使用shadow
参数来添加图例的阴影效果。运行以上代码,我们将看到图例下方有一层阴影。
图例边框圆角
有时候,我们希望调整图例的边框为圆角,可以通过设置fancybox
参数来实现。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(fancybox=True)
plt.show()
代码运行结果:
在这个示例中,我们使用fancybox
参数来设置图例的边框为圆角。运行以上代码,我们将看到图例的边框变为圆角。
图例标题位置
有时候,我们希望调整图例标题的位置,可以通过设置title_loc
参数来实现。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(title='Lines', title_loc='left')
plt.show()
在这个示例中,我们使用title_loc
参数来设置图例标题的位置为左侧。运行以上代码,我们将看到图例标题出现在左侧。
图例标题字体
有时候,我们希望调整图例标题的字体样式,可以通过设置title_fontsize
参数来实现。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 6]
y2 = [1, 4, 2, 6, 8]
plt.plot(x, y1, label='Line 1')
plt.plot(x, y2, label='Line 2')
plt.legend(title='Lines', title_fontsize='large')
plt.show()
代码运行结果:
在这个示例中,我们使用title_fontsize
参数来设置图例标题的字体大小为大号。运行以上代码,我们将看到图例标题的字体变大。