如何在 matplotlib 中创建手动图例(带有示例)


您可以使用matplotlib.linesmatplotlib.patches子模块的函数在 matplotlib 图中创建手动图例。

以下示例展示了如何执行此操作。

示例:在 Matplotlib 中创建手动图例

以下代码展示了如何在 matplotlib 中使用默认图例创建散点图:

 import matplotlib. pyplot as plt

#define data to plot
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 3, 5, 8, 12, 18, 27]

#create scatter plot of x vs. y
plt. scatter (x, y, label=' Original Data ', color=' steelblue ')

#add legend
plt. legend ()

#displayplot
plt. show () 

要创建带有自定义线条和正方形的手动图例,我们需要导入matplotlib.linesmatplotlib.patches子模块。

以下代码显示了如何使用这些子模块创建手动图例:

 import matplotlib. pyplot as plt
from matplotlib. lines import Line2D
import matplotlib. patches as mpatches

#define data to plot
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 3, 5, 8, 12, 18, 27]

#create scatter plot of x vs. y
plt. scatter (x, y, label=' Original Data ', color=' steelblue ')

#define handles and labels that will get added to legend
handles, labels = plt. gca (). get_legend_handles_labels ()

#define patches and lines to add to legend
patch1 = mpatches. Patch (color=' orange ', label=' First Manual Patch ')
patch2 = mpatches. Patch (color=' orange ', label=' First Manual Patch ')   
line1 = Line2D([0], [0], label=' First Manual Line ', color=' purple ')
line2 = Line2D([0], [0], label=' Second Manual Line ', color=' red ')

#add handles
handles. extend ([patch1, line1, line2])

#add legend
plt. legend (handles=handles)

#displayplot
plt. show () 

Matplotlib 手册图例

请注意,此图例包括原始数据的标签,还包括我们手动添加的元素的标签和形状。

要更改任何元素的标签或颜色,只需更改上一段代码中的标签颜色参数的值即可。

注意:请参阅本教程以了解如何更改图中图例的位置。

其他资源

以下教程解释了如何在 Matplotlib 中执行其他常见任务:

如何增加 Matplotlib 中的绘图大小
如何在 Matplotlib 中调整标题位置
如何在 Matplotlib 中设置轴范围

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注