Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Legge til Forklaring | Tilpasning av Diagrammer
Quizzes & Challenges
Quizzes
Challenges
/
Ultimat Visualisering med Python

bookLegge til Forklaring

Når et diagram inneholder flere elementer, bidrar en forklaring til å tydeliggjøre hva hvert element representerer. matplotlib tilbyr flere måter å lage en forklaring på.

Første alternativ

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 oppretter en forklaring i øvre venstre hjørne ved å sende en liste med etiketter inn i plt.legend().

Andre alternativ

Etiketter kan også tildeles direkte i plottfunksjonene ved å bruke 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 samler plt.legend() automatisk etiketter fra de plottede elementene.

Tredje alternativ

Etiketter kan også angis ved å bruke set_label()-metoden til den returnerte artisten:

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

Plassering av forklaring

Argumentet loc styrer hvor forklaringen vises. Standardverdien 'best' lar matplotlib automatisk velge en optimal plassering.

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 verdier for loc inkluderer: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Studer mer

Du kan utforske mer i legend() dokumentasjonen

Oppgave

Swipe to start coding

  1. Merk de laveste søylene som 'primary sector' ved å angi riktig nøkkelordargument.
  2. Merk søylene i midten som 'secondary sector' ved å angi riktig nøkkelordargument.
  3. Merk de øverste søylene som 'tertiary sector' ved å angi riktig nøkkelordargument.
  4. Plasser forklaringen på høyre side, sentrert vertikalt.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

close

Awesome!

Completion rate improved to 3.85

bookLegge til Forklaring

Sveip for å vise menyen

Når et diagram inneholder flere elementer, bidrar en forklaring til å tydeliggjøre hva hvert element representerer. matplotlib tilbyr flere måter å lage en forklaring på.

Første alternativ

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 oppretter en forklaring i øvre venstre hjørne ved å sende en liste med etiketter inn i plt.legend().

Andre alternativ

Etiketter kan også tildeles direkte i plottfunksjonene ved å bruke 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 samler plt.legend() automatisk etiketter fra de plottede elementene.

Tredje alternativ

Etiketter kan også angis ved å bruke set_label()-metoden til den returnerte artisten:

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

Plassering av forklaring

Argumentet loc styrer hvor forklaringen vises. Standardverdien 'best' lar matplotlib automatisk velge en optimal plassering.

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 verdier for loc inkluderer: 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.

Note
Studer mer

Du kan utforske mer i legend() dokumentasjonen

Oppgave

Swipe to start coding

  1. Merk de laveste søylene som 'primary sector' ved å angi riktig nøkkelordargument.
  2. Merk søylene i midten som 'secondary sector' ved å angi riktig nøkkelordargument.
  3. Merk de øverste søylene som 'tertiary sector' ved å angi riktig nøkkelordargument.
  4. Plasser forklaringen på høyre side, sentrert vertikalt.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
single

single

some-alt