Jak zmienić kolejność elementów w legendzie matplotlib


Możesz użyć następującego fragmentu kodu, aby zmienić kolejność elementów w legendzie 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])

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: zmień kolejność elementów w legendzie Matplotlib

Załóżmy, że tworzymy następujący wykres liniowy w 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 () 

Elementy legendy ułożone są w kolejności, w jakiej dodaliśmy linie do wykresu.

Możemy jednak użyć następującej składni, aby dostosować kolejność elementów w legendzie:

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

Porządek legend Matplotlib

Zauważ, że określiliśmy:

  • rząd = [1, 2, 0]

To znaczy:

  • Pierwszą pozycją w legendzie powinna być etykieta, która pierwotnie znajdowała się na pozycji indeksu 1 starej legendy („Pomoc”).
  • Drugim elementem legendy powinna być etykieta, która pierwotnie znajdowała się na pozycji indeksu 2 starej legendy („Odbicia”)
  • Trzecim elementem legendy musi być etykieta, która pierwotnie znajdowała się na pozycji indeksu 0 starej legendy („Punkty”)

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w Matplotlib:

Jak zmienić pozycję legendy w Matplotlib
Jak umieścić legendę poza wykresem Matplotlib
Jak zmienić rozmiar czcionki legendy w Matplotlib

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *