Tilføjelse af Signatur
Når et diagram indeholder flere elementer, hjælper tilføjelsen af en forklaring med at tydeliggøre, hvad hvert element repræsenterer. matplotlib tilbyder flere måder at oprette en forklaring på.
Første mulighed
Du kan definere alle etiketter direkte i plt.legend():
123456789101112131415161718import 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()
Dette opretter en signatur i øverste venstre hjørne ved at videregive en liste af etiketter til plt.legend().
Andet valg
Du kan også tildele etiketter direkte i plot-funktionerne ved at bruge parameteren label=:
1234567891011121314151617181920import 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()
Her samler plt.legend() automatisk etiketter fra de plottede elementer.
Tredje mulighed
Etiketter kan også angives ved at bruge set_label()-metoden på den returnerede artist:
12345678910111213141516171819202122import 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()
Placering af signaturforklaring
Argumentet loc styrer, hvor signaturforklaringen vises. Standardværdien 'best' beder matplotlib om automatisk at vælge en optimal placering.
12345678910111213141516171819202122import 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()
Gyldige værdier for loc inkluderer:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Du kan udforske mere i legend() dokumentation
Swipe to start coding
- Mærk de laveste søjler som
'primary sector'ved at angive det relevante nøgleargument. - Mærk søjlerne i midten som
'secondary sector'ved at angive det relevante nøgleargument. - Mærk de øverste søjler som
'tertiary sector'ved at angive det relevante nøgleargument. - Placer signaturforklaringen til højre, centreret lodret.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain the difference between these three legend options?
How do I customize the legend appearance further?
What happens if I don't specify the `loc` parameter in `plt.legend()`?
Awesome!
Completion rate improved to 3.85
Tilføjelse af Signatur
Stryg for at vise menuen
Når et diagram indeholder flere elementer, hjælper tilføjelsen af en forklaring med at tydeliggøre, hvad hvert element repræsenterer. matplotlib tilbyder flere måder at oprette en forklaring på.
Første mulighed
Du kan definere alle etiketter direkte i plt.legend():
123456789101112131415161718import 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()
Dette opretter en signatur i øverste venstre hjørne ved at videregive en liste af etiketter til plt.legend().
Andet valg
Du kan også tildele etiketter direkte i plot-funktionerne ved at bruge parameteren label=:
1234567891011121314151617181920import 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()
Her samler plt.legend() automatisk etiketter fra de plottede elementer.
Tredje mulighed
Etiketter kan også angives ved at bruge set_label()-metoden på den returnerede artist:
12345678910111213141516171819202122import 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()
Placering af signaturforklaring
Argumentet loc styrer, hvor signaturforklaringen vises. Standardværdien 'best' beder matplotlib om automatisk at vælge en optimal placering.
12345678910111213141516171819202122import 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()
Gyldige værdier for loc inkluderer:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Du kan udforske mere i legend() dokumentation
Swipe to start coding
- Mærk de laveste søjler som
'primary sector'ved at angive det relevante nøgleargument. - Mærk søjlerne i midten som
'secondary sector'ved at angive det relevante nøgleargument. - Mærk de øverste søjler som
'tertiary sector'ved at angive det relevante nøgleargument. - Placer signaturforklaringen til højre, centreret lodret.
Løsning
Tak for dine kommentarer!
single