如何更改 matplotlib 图例中元素的顺序


您可以使用以下代码来更改 Matplotlib 图例中元素的顺序:

 #get handles and labels
handles, labels = plt. gca (). get_legend_handles_labels ()

#specify order of items in legend
order = [1,2,0]

#add legend to plot
plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order])

以下示例展示了如何在实践中使用此语法。

示例:更改 Matplotlib 图例中元素的顺序

假设我们在 Matplotlib 中创建以下折线图:

 import pandas as pd
import matplotlib. pyplot as plt

#create data
df = pd. DataFrame ({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8],
                   'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]})

#add lines to plot
plt. plot (df['points'], label='Points', color='green')
plt. plot (df['assists'], label='Assists', color='steelblue')
plt. plot (df['rebounds'], label='Rebounds', color='purple')

#add legend
plt. legend () 

图例元素按照我们将线条添加到图中的顺序放置。

但是,我们可以使用以下语法来自定义图例中元素的顺序:

 import pandas as pd
import matplotlib. pyplot as plt

#create data
df = pd. DataFrame ({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8],
                   'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]})

#add lines to plot
plt. plot (df['points'], label='Points', color='green')
plt. plot (df['assists'], label='Assists', color='steelblue')
plt. plot (df['rebounds'], label='Rebounds', color='purple')

#get handles and labels
handles, labels = plt. gca (). get_legend_handles_labels ()

#specify order of items in legend
order = [1,2,0]

#add legend to plot
plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order]) 

Matplotlib 图例的顺序

请注意,我们指定:

  • 顺序 = [1, 2, 0]

这意味着:

  • 图例中的第一项应该是原来位于旧图例索引位置1的标签(“帮助”)。
  • 图例的第二个元素应该是原来位于旧图例索引位置2的标签(“Bounces”)
  • 图例的第三个元素必须是原来位于旧图例索引位置0的标签(“Points”)

其他资源

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

如何更改 Matplotlib 中图例的位置
如何将图例放置在 Matplotlib 图之外
如何更改 Matplotlib 中的图例字体大小

添加评论

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