如何更改 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])
请注意,我们指定:
- 顺序 = [1, 2, 0]
这意味着:
- 图例中的第一项应该是原来位于旧图例索引位置1的标签(“帮助”)。
- 图例的第二个元素应该是原来位于旧图例索引位置2的标签(“Bounces”)
- 图例的第三个元素必须是原来位于旧图例索引位置0的标签(“Points”)
其他资源
以下教程解释了如何在 Matplotlib 中执行其他常见操作:
如何更改 Matplotlib 中图例的位置
如何将图例放置在 Matplotlib 图之外
如何更改 Matplotlib 中的图例字体大小