Matplotlib 自动图例放置在绘图外面

Matplotlib 自动图例放置在绘图外面

在Matplotlib中,图例是帮助理解绘图内容的重要工具,但是当图形比较大时,图例可能会和绘图重叠,影响可视性。本文将介绍如何使用Matplotlib自动将图例放置在绘图外面。

阅读更多:Matplotlib 教程

导入Matplotlib

首先,我们需要导入Matplotlib库:

import matplotlib.pyplot as plt
Python

创建示例数据进行绘制

接下来,我们需要创建一些示例数据来绘制图形。以下是一个简单的示例:

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

plt.plot(x, y, label='y=x')
plt.plot(x, [i*2 for i in y], label='y=2x')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.show()
Python

使用bbox_to_anchor参数将图例放置在外面

默认情况下,Matplotlib会将图例放置在绘图内部。但是我们可以使用bbox_to_anchor参数将图例放置在绘图的外面。bbox_to_anchor参数是一个元组,用于指定图例的位置。例如,以下代码将图例放置在绘图的右下角:

plt.plot(x, y, label='y=x')
plt.plot(x, [i*2 for i in y], label='y=2x')
plt.xlabel('x')
plt.ylabel('y')
plt.legend(loc='upper right', bbox_to_anchor=(1.25, 1.))
plt.show()
Python

在上面的代码中,loc参数设置为upper right,将图例放置在右上角。bbox_to_anchor参数设置为(1.25, 1.),这意味着图例的右上角将与绘图的右上角对齐,但是bbox_to_anchor参数还可以使用其他的位置坐标进行设置。

使用numpoints参数控制图例中的符号数量

在绘图中,有时我们会使用多个符号来表示同一个数据系列,此时图例中会显示多个相同的数据系列。可以通过设置numpoints参数来控制图例中每个数据系列显示的符号数量。例如:

plt.plot(x, y, 'o', label='y=x')
plt.plot(x, [i*2 for i in y], 'x', label='y=2x')
plt.xlabel('x')
plt.ylabel('y')
plt.legend(numpoints=1)
plt.show()
Python

在上面的代码中,每个数据系列都只显示一个符号,numpoints参数设置为1。

改变图例的字体大小和颜色

Matplotlib还允许我们改变图例的字体大小和颜色。以下是一个简单的例子:

plt.plot(x, y, 'o', label='y=x')
plt.plot(x, [i*2 for i in y], 'x', label='y=2x')
plt.xlabel('x')
plt.ylabel('y')
legend = plt.legend(numpoints=1)
legend.get_texts()[0].set_color("blue")
legend.get_texts()[1].set_color("red")
legend.get_texts()[0].set_fontsize('large')
legend.get_texts()[1].set_fontsize('large')
plt.show()
Python

在上面的代码中,我们使用get_texts方法为每个数据系列设置颜色和字体大小。

总结

Matplotlib是Python绘图库中最常用的之一,使用Matplotlib自动将图例放置在绘图外面,可以提供更好的可视性。我们可以使用bbox_to_anchor参数设置图例的位置,使用numpoints参数设置图例中每个数据系列显示的符号数量,使用get_texts方法改变图例的字体大小和颜色。通过这些参数,可以使得图形更加美观和易读。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册