Legenda Toevoegen
Wanneer een grafiek meerdere elementen bevat, helpt het toevoegen van een legenda om te verduidelijken wat elk element voorstelt. matplotlib biedt verschillende manieren om een legenda te maken.
Eerste optie
Je kunt alle labels direct definiëren binnen 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()
Hiermee wordt een legenda in de linkerbovenhoek geplaatst door een lijst met labels door te geven aan plt.legend().
Tweede optie
Labels kunnen ook direct binnen de plotfuncties worden toegekend met behulp van de parameter 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()
Hier verzamelt plt.legend() automatisch labels van de weergegeven elementen.
Derde optie
Labels kunnen ook worden ingesteld met de set_label()-methode van het geretourneerde artist-object:
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()
Legende Locatie
Het argument loc bepaalt waar de legende verschijnt. De standaardwaarde 'best' laat matplotlib automatisch een optimale locatie kiezen.
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()
Geldige waarden voor loc zijn:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Meer informatie is te vinden in legend() documentatie
Swipe to start coding
- Label de laagste balken als
'primary sector'met het juiste keyword argument. - Label de middelste balken als
'secondary sector'met het juiste keyword argument. - Label de hoogste balken als
'tertiary sector'met het juiste keyword argument. - Plaats de legenda aan de rechterkant, verticaal gecentreerd.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 3.85
Legenda Toevoegen
Veeg om het menu te tonen
Wanneer een grafiek meerdere elementen bevat, helpt het toevoegen van een legenda om te verduidelijken wat elk element voorstelt. matplotlib biedt verschillende manieren om een legenda te maken.
Eerste optie
Je kunt alle labels direct definiëren binnen 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()
Hiermee wordt een legenda in de linkerbovenhoek geplaatst door een lijst met labels door te geven aan plt.legend().
Tweede optie
Labels kunnen ook direct binnen de plotfuncties worden toegekend met behulp van de parameter 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()
Hier verzamelt plt.legend() automatisch labels van de weergegeven elementen.
Derde optie
Labels kunnen ook worden ingesteld met de set_label()-methode van het geretourneerde artist-object:
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()
Legende Locatie
Het argument loc bepaalt waar de legende verschijnt. De standaardwaarde 'best' laat matplotlib automatisch een optimale locatie kiezen.
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()
Geldige waarden voor loc zijn:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Meer informatie is te vinden in legend() documentatie
Swipe to start coding
- Label de laagste balken als
'primary sector'met het juiste keyword argument. - Label de middelste balken als
'secondary sector'met het juiste keyword argument. - Label de hoogste balken als
'tertiary sector'met het juiste keyword argument. - Plaats de legenda aan de rechterkant, verticaal gecentreerd.
Oplossing
Bedankt voor je feedback!
single