Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Legende Hinzufügen | Anpassung von Plots
Ultimative Visualisierung mit Python
course content

Kursinhalt

Ultimative Visualisierung mit Python

Ultimative Visualisierung mit Python

1. Einführung in Matplotlib
2. Erstellen Häufig Verwendeter Diagramme
3. Anpassung von Plots
4. Mehr Statistische Diagramme
5. Visualisierung mit Seaborn

book
Legende Hinzufügen

Es kommt oft vor, dass wir mehrere Elemente auf der Leinwand haben und es besser wäre, sie zu beschriften, um das Diagramm zu beschreiben. Hier kommt die Legende ins Spiel. Grundsätzlich ist es ein relativ kleiner Bereich, der verschiedene Teile des Diagramms beschreibt.

Wir werden drei mögliche Optionen durchgehen, um eine Legende in matplotlib zu erstellen.

Erste Option

Schauen wir uns ein Beispiel an, um alles klar zu machen:

1234567891011121314
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 = np.array([yes_answers, no_answers]) 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) # Setting the labels for the legend explicitly plt.legend(['positive answers', 'negative answers']) plt.show()
copy

In der oberen linken Ecke haben wir eine Legende, die verschiedene Balken unseres Diagramms beschreibt. Um eine Legende zu erstellen, wird die Funktion plt.legend() mit der Liste der Beschriftungen als erstem Argument verwendet (dieser Parameter wird auch labels genannt).

Zweite Option

Eine andere Option besteht darin, den label-Parameter in jedem Aufruf der Plot-Funktion (in unserem Beispiel bar()) anzugeben:

12345678910111213141516
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 = np.array([yes_answers, no_answers]) width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): # Specifying the label parameter for each of the bar() function calls plt.bar(positions + width * i, answers[i], width, label=labels[i]) plt.xticks(positions + width * (len(answers) - 1) / 2, questions) # Automatical detection of the labels plt.legend() plt.show()
copy

Hier bestimmt plt.legend() automatisch die Elemente, die der Legende hinzugefügt werden sollen, und deren Beschriftungen (alle Elemente mit dem angegebenen label-Parameter werden hinzugefügt).

Dritte Option

Tatsächlich gibt es noch eine weitere Option, indem die Methode set_label() auf dem Künstler (bar in unserem Beispiel) verwendet wird:

Legendenposition

Es gibt ein weiteres wichtiges Schlüsselwortargument der legend()-Funktion, loc, das die Position der Legende angibt. Der Standardwert ist best, was matplotlib "sagt", automatisch die beste Position für die Legende zu wählen, um Überlappungen mit den Daten zu vermeiden.

12345678910111213141516
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 = np.array([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]) plt.xticks(positions + width * (len(answers) - 1) / 2, questions) # Modiying the legend location plt.legend(loc='upper center') plt.show()
copy

Hier haben wir die Legende im oberen Zentrum platziert. Andere mögliche Werte sind die folgenden:

  • 'upper right', 'upper left', 'lower left';
  • 'lower right', 'right';
  • 'center left', 'center right', 'lower center', 'center'.

Mehr über legend() können Sie in der Dokumentation erkunden.

Aufgabe

Swipe to start coding

  1. Beschriften Sie die untersten Balken als 'primary sector' und geben Sie das entsprechende Schlüsselwort-Argument an.
  2. Beschriften Sie die mittleren Balken als 'secondary sector' und geben Sie das entsprechende Schlüsselwort-Argument an.
  3. Beschriften Sie die obersten Balken als 'tertiary sector' und geben Sie das entsprechende Schlüsselwort-Argument an.
  4. Verwenden Sie die richtige Funktion, um eine Legende zu erstellen.
  5. Platzieren Sie die Legende auf der rechten Seite, vertikal zentriert.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 2
toggle bottom row

book
Legende Hinzufügen

Es kommt oft vor, dass wir mehrere Elemente auf der Leinwand haben und es besser wäre, sie zu beschriften, um das Diagramm zu beschreiben. Hier kommt die Legende ins Spiel. Grundsätzlich ist es ein relativ kleiner Bereich, der verschiedene Teile des Diagramms beschreibt.

Wir werden drei mögliche Optionen durchgehen, um eine Legende in matplotlib zu erstellen.

Erste Option

Schauen wir uns ein Beispiel an, um alles klar zu machen:

1234567891011121314
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 = np.array([yes_answers, no_answers]) 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) # Setting the labels for the legend explicitly plt.legend(['positive answers', 'negative answers']) plt.show()
copy

In der oberen linken Ecke haben wir eine Legende, die verschiedene Balken unseres Diagramms beschreibt. Um eine Legende zu erstellen, wird die Funktion plt.legend() mit der Liste der Beschriftungen als erstem Argument verwendet (dieser Parameter wird auch labels genannt).

Zweite Option

Eine andere Option besteht darin, den label-Parameter in jedem Aufruf der Plot-Funktion (in unserem Beispiel bar()) anzugeben:

12345678910111213141516
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 = np.array([yes_answers, no_answers]) width = 0.3 labels = ['positive answers', 'negative answers'] for i in range(len(answers)): # Specifying the label parameter for each of the bar() function calls plt.bar(positions + width * i, answers[i], width, label=labels[i]) plt.xticks(positions + width * (len(answers) - 1) / 2, questions) # Automatical detection of the labels plt.legend() plt.show()
copy

Hier bestimmt plt.legend() automatisch die Elemente, die der Legende hinzugefügt werden sollen, und deren Beschriftungen (alle Elemente mit dem angegebenen label-Parameter werden hinzugefügt).

Dritte Option

Tatsächlich gibt es noch eine weitere Option, indem die Methode set_label() auf dem Künstler (bar in unserem Beispiel) verwendet wird:

Legendenposition

Es gibt ein weiteres wichtiges Schlüsselwortargument der legend()-Funktion, loc, das die Position der Legende angibt. Der Standardwert ist best, was matplotlib "sagt", automatisch die beste Position für die Legende zu wählen, um Überlappungen mit den Daten zu vermeiden.

12345678910111213141516
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 = np.array([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]) plt.xticks(positions + width * (len(answers) - 1) / 2, questions) # Modiying the legend location plt.legend(loc='upper center') plt.show()
copy

Hier haben wir die Legende im oberen Zentrum platziert. Andere mögliche Werte sind die folgenden:

  • 'upper right', 'upper left', 'lower left';
  • 'lower right', 'right';
  • 'center left', 'center right', 'lower center', 'center'.

Mehr über legend() können Sie in der Dokumentation erkunden.

Aufgabe

Swipe to start coding

  1. Beschriften Sie die untersten Balken als 'primary sector' und geben Sie das entsprechende Schlüsselwort-Argument an.
  2. Beschriften Sie die mittleren Balken als 'secondary sector' und geben Sie das entsprechende Schlüsselwort-Argument an.
  3. Beschriften Sie die obersten Balken als 'tertiary sector' und geben Sie das entsprechende Schlüsselwort-Argument an.
  4. Verwenden Sie die richtige Funktion, um eine Legende zu erstellen.
  5. Platzieren Sie die Legende auf der rechten Seite, vertikal zentriert.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 2
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt