Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Arbejde med Signaturforklaring | Sektion
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
Datavisualisering med Matplotlib

bookArbejde med Signaturforklaring

Når et diagram indeholder flere elementer, hjælper en forklaring med at tydeliggøre, hvad hvert element repræsenterer. matplotlib tilbyder flere måder at oprette en forklaring på.

Første mulighed

Alle etiketter kan defineres direkte i plt.legend():

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Dette opretter en forklaring i øverste venstre hjørne ved at videregive en liste af etiketter til plt.legend().

Andet valg

Etiketter kan også tildeles direkte i plotfunktionerne ved at bruge parameteren label=:

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Her indsamler plt.legend() automatisk etiketter fra de plottede elementer.

Tredje mulighed

Du kan også angive etiketter ved at bruge set_label()-metoden på det returnerede artist-objekt:

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Placering af signaturforklaring

Argumentet loc styrer, hvor signaturforklaringen vises. Standardværdien 'best' beder matplotlib automatisk vælge en optimal placering.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Gyldige værdier for loc inkluderer:

'upper left'

'upper center'

'upper right'

'center left'

'center'

'center right'

'lower left'

'lower center'

'lower right'

Du kan også bruge muligheden 'best', som automatisk placerer forklaringen der, hvor der er mindst overlap med de viste data. Derudover giver brugen af 'right' samme resultat som 'center right'.

Note
Undersøg Mere

Du kan udforske mere i legend() dokumentationen

Opgave

Swipe to start coding

  1. Mærk de laveste søjler som 'primary sector' ved at angive det relevante nøgleord-argument.
  2. Mærk søjlerne i midten som 'secondary sector' ved at angive det relevante nøgleord-argument.
  3. Mærk de øverste søjler som 'tertiary sector' ved at angive det relevante nøgleord-argument.
  4. Placer signaturforklaringen (legend) på højre side, centreret lodret.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 10
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

bookArbejde med Signaturforklaring

Stryg for at vise menuen

Når et diagram indeholder flere elementer, hjælper en forklaring med at tydeliggøre, hvad hvert element repræsenterer. matplotlib tilbyder flere måder at oprette en forklaring på.

Første mulighed

Alle etiketter kan defineres direkte i plt.legend():

123456789101112131415161718
import numpy as np import matplotlib.pyplot as plt questions = ['question_1', 'question_2', 'question_3'] yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = np.array([yes_answers, no_answers]) positions = np.arange(len(questions)) width = 0.3 for i in range(len(answers)): plt.bar(positions + width * i, answers[i], width) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend(['positive answers', 'negative answers']) plt.show()
copy

Dette opretter en forklaring i øverste venstre hjørne ved at videregive en liste af etiketter til plt.legend().

Andet valg

Etiketter kan også tildeles direkte i plotfunktionerne ved at bruge parameteren label=:

1234567891011121314151617181920
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i in range(len(answers)): plt.bar(positions + width*i, answers[i], width, label=labels[i]) plt.xticks(positions + width*(len(answers)-1)/2, questions) plt.legend() plt.show()
copy

Her indsamler plt.legend() automatisk etiketter fra de plottede elementer.

Tredje mulighed

Du kan også angive etiketter ved at bruge set_label()-metoden på det returnerede artist-objekt:

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): bar = plt.bar(positions + width*i, answers[i], width) bar.set_label(labels[i]) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Placering af signaturforklaring

Argumentet loc styrer, hvor signaturforklaringen vises. Standardværdien 'best' beder matplotlib automatisk vælge en optimal placering.

12345678910111213141516171819202122
import matplotlib.pyplot as plt import numpy as np questions = ['question_1', 'question_2', 'question_3'] positions = np.arange(len(questions)) yes_answers = np.array([500, 240, 726]) no_answers = np.array([432, 618, 101]) answers = [yes_answers, no_answers] labels = ['positive answers', 'negative answers'] width = 0.3 for i, label in enumerate(labels): bars = plt.bar(positions + width*i, answers[i], width) bars.set_label(label) center_positions = positions + width*(len(answers)-1)/2 plt.xticks(center_positions, questions) plt.legend(loc='upper center') plt.show()
copy

Gyldige værdier for loc inkluderer:

'upper left'

'upper center'

'upper right'

'center left'

'center'

'center right'

'lower left'

'lower center'

'lower right'

Du kan også bruge muligheden 'best', som automatisk placerer forklaringen der, hvor der er mindst overlap med de viste data. Derudover giver brugen af 'right' samme resultat som 'center right'.

Note
Undersøg Mere

Du kan udforske mere i legend() dokumentationen

Opgave

Swipe to start coding

  1. Mærk de laveste søjler som 'primary sector' ved at angive det relevante nøgleord-argument.
  2. Mærk søjlerne i midten som 'secondary sector' ved at angive det relevante nøgleord-argument.
  3. Mærk de øverste søjler som 'tertiary sector' ved at angive det relevante nøgleord-argument.
  4. Placer signaturforklaringen (legend) på højre side, centreret lodret.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 10
single

single

some-alt