Hoe de volgorde van elementen in de matplotlib-legenda te veranderen


U kunt het volgende stukje code gebruiken om de volgorde van elementen in een Matplotlib-legenda te wijzigen:

 #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])

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: verander de volgorde van elementen in de Matplotlib-legenda

Stel dat we het volgende lijndiagram in Matplotlib maken:

 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 () 

De legenda-elementen worden geplaatst in de volgorde waarin we de lijnen aan de plot hebben toegevoegd.

We kunnen echter de volgende syntaxis gebruiken om de volgorde van de elementen in de legenda aan te passen:

 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]) 

Orde van Matplotlib-legendes

Houd er rekening mee dat we het volgende hebben gespecificeerd:

  • bestelling = [1, 2, 0]

Dat betekent:

  • Het eerste item in de legenda moet het label zijn dat oorspronkelijk op indexpositie 1 van de oude legenda stond („Helps“).
  • Het tweede element van de legenda moet het label zijn dat oorspronkelijk op indexpositie 2 van de oude legenda stond („Bounces“)
  • Het derde element van de legenda moet het label zijn dat oorspronkelijk op indexpositie 0 van de oude legenda stond („Punten“)

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in Matplotlib kunt uitvoeren:

Hoe de positie van een legenda in Matplotlib te veranderen
Hoe de legenda buiten een Matplotlib-plot te plaatsen
Hoe de lettergrootte van de legenda in Matplotlib te wijzigen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert