Legende Hinzufügen
Wenn ein Diagramm mehrere Elemente enthält, trägt das Hinzufügen einer Legende dazu bei, zu verdeutlichen, was jedes Element repräsentiert. matplotlib bietet verschiedene Möglichkeiten, eine Legende zu erstellen.
Erste Möglichkeit
Alle Beschriftungen können direkt in plt.legend() definiert werden:
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()
Dies erzeugt eine Legende in der oberen linken Ecke, indem eine Liste von Beschriftungen an plt.legend() übergeben wird.
Zweite Option
Beschriftungen können auch direkt in den Plot-Funktionen mit dem Parameter label= zugewiesen werden:
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 sammelt plt.legend() automatisch die Beschriftungen der dargestellten Elemente.
Dritte Option
Beschriftungen können auch mit der Methode set_label() des zurückgegebenen Künstlers gesetzt werden:
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()
Legendenposition
Das Argument loc steuert, wo die Legende angezeigt wird. Der Standardwert 'best' überlässt matplotlib die automatische Auswahl einer optimalen Position.
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()
Gültige Werte für loc sind:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Weitere Informationen finden Sie in der legend() Dokumentation
Swipe to start coding
- Die untersten Balken als
'primary sector'mit dem entsprechenden Schlüsselwortargument kennzeichnen. - Die mittleren Balken als
'secondary sector'mit dem entsprechenden Schlüsselwortargument kennzeichnen. - Die obersten Balken als
'tertiary sector'mit dem entsprechenden Schlüsselwortargument kennzeichnen. - Die Legende rechts, vertikal zentriert, platzieren.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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
Legende Hinzufügen
Swipe um das Menü anzuzeigen
Wenn ein Diagramm mehrere Elemente enthält, trägt das Hinzufügen einer Legende dazu bei, zu verdeutlichen, was jedes Element repräsentiert. matplotlib bietet verschiedene Möglichkeiten, eine Legende zu erstellen.
Erste Möglichkeit
Alle Beschriftungen können direkt in plt.legend() definiert werden:
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()
Dies erzeugt eine Legende in der oberen linken Ecke, indem eine Liste von Beschriftungen an plt.legend() übergeben wird.
Zweite Option
Beschriftungen können auch direkt in den Plot-Funktionen mit dem Parameter label= zugewiesen werden:
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 sammelt plt.legend() automatisch die Beschriftungen der dargestellten Elemente.
Dritte Option
Beschriftungen können auch mit der Methode set_label() des zurückgegebenen Künstlers gesetzt werden:
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()
Legendenposition
Das Argument loc steuert, wo die Legende angezeigt wird. Der Standardwert 'best' überlässt matplotlib die automatische Auswahl einer optimalen Position.
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()
Gültige Werte für loc sind:
'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'center'.
Weitere Informationen finden Sie in der legend() Dokumentation
Swipe to start coding
- Die untersten Balken als
'primary sector'mit dem entsprechenden Schlüsselwortargument kennzeichnen. - Die mittleren Balken als
'secondary sector'mit dem entsprechenden Schlüsselwortargument kennzeichnen. - Die obersten Balken als
'tertiary sector'mit dem entsprechenden Schlüsselwortargument kennzeichnen. - Die Legende rechts, vertikal zentriert, platzieren.
Lösung
Danke für Ihr Feedback!
single