Hinzufügen von Wertelabels zu Matplotlib-Balkendiagrammen

Aditya Raj 30 Januar 2023
  1. Hinzufügen von Wertelabels zu Matplotlib-Balkendiagrammen mit der Methode pyplot.text()
  2. Fügen Sie Wertelabels auf dem Matplotlib-Balkendiagramm mit der Funktion pyplot.annotate() hinzu
  3. Abschluss
Hinzufügen von Wertelabels zu Matplotlib-Balkendiagrammen

Matplotlib-Balkendiagramme sind eine gute Möglichkeit, Daten in Python zu visualisieren. In den Balkendiagrammen müssen wir oft Beschriftungen hinzufügen, um die Daten zu visualisieren. In diesem Artikel werden die verschiedenen Möglichkeiten zum Hinzufügen von Wertelabels zu einem Matplotlib-Balkendiagramm untersucht.

Hinzufügen von Wertelabels zu Matplotlib-Balkendiagrammen mit der Methode pyplot.text()

Um Wertelabels zu einem Matplotlib-Balkendiagramm hinzuzufügen, können wir die Funktion pyplot.text() verwenden.

Die Funktion pyplot.text() aus dem Modul Matplotlib wird verwendet, um an beliebigen Stellen im Diagramm Textwerte hinzuzufügen. Die Syntax für die Funktion pyplot.text() lautet wie folgt.

matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)

Hier,

  • Die Parameter x und y sind die Koordinaten des Graphen, wo der Text platziert wird. Der Parameter s enthält den Textstring.
  • Der Parameter fontdict wird verwendet, um Eigenschaften wie Schriftart und Größe des Textes zu ändern. Der Standardwert ist None.
  • Der Parameter **kwargs stellt andere Parameter dar, die verwendet werden, um die Position des Textes im Balkendiagramm zu bestimmen.

In diesem Artikel verwenden wir den Parameter ha, um die horizontale Ausrichtung des Textes zu bestimmen. Weitere Informationen zu anderen Parametern der Funktion erhalten Sie in der offiziellen Dokumentation der Funktion text().

Lassen Sie uns nun ein Balkendiagramm zeichnen und ihm dann Wertebeschriftungen hinzufügen. Angenommen, wir haben Daten über die Anzahl der Schüler einer Klasse in einer Schule von den Klassen 1 bis 10 in Form einer Liste wie folgt.

no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]

Dabei steht der Index i für die Anzahl der Schüler der Klasse i+1. Um die Daten zu plotten, erstellen wir eine Liste class_number, die Zahlen von 1 bis 10 enthält. Danach zeichnen wir das Balkendiagramm mit der Funktion pyplot.bar(). Dann fügen wir dem Graphen title, xlabel und ylabel mit den Funktionen title(), xlabel() bzw. ylabel() hinzu.

Um Wertelabels hinzuzufügen, definieren wir eine Funktion add_value_label(x_list,y_list). Hier sind x_list und y_list die Listen mit Daten für die x- und y-Achse, d. h. class_number und no_of_students.

In der Funktion add_value_label() geben wir die Koordinaten der Wertelabels als (x, die Höhe des Balkendiagramms bei x) an, damit das Wertelabel am oberen Rand des Balkendiagramms hinzugefügt wird. Der an die Textfunktion übergebene Textwert entspricht der Höhe des Balkendiagramms bei x. Dabei steht x für die Elemente von class_number und die Höhe des Balkendiagramms bei x ist die entsprechende Anzahl von Schülern in der Klasse x.

Zum Beispiel fügen wir die Anzahl der Schüler in jeder Klasse als Wertelabel oben im Balkendiagramm hinzu.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.text(i, y_list[i - 1], y_list[i - 1])


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Ausgabe:

Standardmäßiges Hinzufügen von Wertbeschriftungen zu Matplotlib-Balkendiagrammen mit Text

Möglicherweise stellen Sie fest, dass sich die Wertebeschriftungen in der Ausgabe nicht in der Mitte oben im Balkendiagramm befinden. Wir können dies tun, indem wir die Eingabeargumente manipulieren, wie in den folgenden Abschnitten beschrieben.

Fügen Sie Wertelabels auf dem Matplotlib-Balkendiagramm in der Mitte jedes Balkens hinzu

Um die Wertelabels im Matplotlib-Balkendiagramm in der Mitte oben im Balkendiagramm hinzuzufügen, geben wir die horizontale Ausrichtung als center in der Funktion pyplot.text() wie folgt an.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.text(i, y_list[i - 1], y_list[i - 1], ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Ausgabe:

Center Value Labels auf Matplotlib-Balkendiagramm mit Text hinzufügen

Fügen Sie Wertelabels auf dem Matplotlib-Balkendiagramm in der Mitte der Höhe jedes Balkens hinzu

Sie können auch Wertelabels in der Mitte der Höhe jedes Balkens hinzufügen. Dazu müssen wir die y-Koordinate in der Funktion pyplot.text() als (die Höhe des Balkendiagramms bei x)/2 angeben. Sie können dies im folgenden Beispielcode sehen.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.text(i, y_list[i - 1] / 2, y_list[i - 1], ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Ausgabe:

Höhenmittelpunkt Hinzufügen von Wertbeschriftungen auf dem Matplotlib-Balkendiagramm mit Text

Fügen Sie Wertelabels auf dem Matplotlib-Balkendiagramm mit der Funktion pyplot.annotate() hinzu

Anstelle der Funktion pyplot.text() können wir die Funktion pyplot.annotate() verwenden, um Wertelabels auf einem Matplotlib-Balkendiagramm hinzuzufügen. Die Syntax der Funktion pyplot.annotate() ist wie folgt.

matplotlib.pyplot.annotate(text, xy, *args, **kwargs)

Hier,

  • Der Parameter text ist die Beschriftung, die der Grafik hinzugefügt wird.
  • Der Parameter xy akzeptiert ein Tupel (x,y), wobei x und y die Koordinaten sind, an denen das Label dem Graphen hinzugefügt wird.
  • Die Funktion akzeptiert viele verschiedene Argumente. In diesem Artikel wird lediglich der Parameter ha verwendet, um die horizontale Ausrichtung des Etiketts im Balkendiagramm festzulegen.

Wir zeichnen das Balkendiagramm mit der Funktion pyplot.bar(). Dann fügen wir dem Graphen title, xlabell und ylabel mit den Funktionen title(), xlabel() und ylabel() hinzu.

Um Wertelabels zum Matplotlib-Balkendiagramm hinzuzufügen, definieren wir eine Funktion add_value_label(x_list,y_list). x und y sind hier die Listen mit Daten für die x- und y-Achse. In der Funktion add_value_label() übergeben wir die Tupel, die aus den angegebenen Daten für x- und y-Koordinaten erzeugt wurden, als Eingabeargument an den Parameter xy. Damit übergeben wir andere Werte an die Funktion annotate(), um Wertelabels zum Matplotlib-Balkendiagramm wie folgt hinzuzufügen.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.annotate(y_list[i - 1], (i, y_list[i - 1]))


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Ausgabe:

Standardmäßiges Hinzufügen von Wertbeschriftungen zu Matplotlib-Balkendiagrammen mit Annotate

Auch hier können Sie feststellen, dass die Beschriftungen nicht am Balkendiagramm ausgerichtet sind. Um sie auszurichten, können Sie mit dem horizontalen Ausrichtungsparameter ha die folgende Ausrichtung einstellen.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.annotate(y_list[i - 1], (i, y_list[i - 1]), ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Ausgabe:

Zentrieren Sie das Hinzufügen von Wertbeschriftungen auf dem Matplotlib-Balkendiagramm mit Annotate

Sie können auch Wertelabels in der Mitte der Höhe jedes Balkens hinzufügen. Dazu müssen wir die y-Koordinate in den Tupeln als (die Höhe des Balkendiagramms bei x)/2 angeben. Sie können dies im folgenden Beispielcode sehen.

import matplotlib.pyplot as plt


def add_value_label(x_list, y_list):
    for i in range(1, len(x_list) + 1):
        plt.annotate(y_list[i - 1], (i, y_list[i - 1] / 2), ha="center")


no_of_students = [10, 24, 45, 30, 23, 56, 67, 34, 45, 50]
class_number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
plt.bar(class_number, no_of_students)
add_value_label(class_number, no_of_students)
plt.title("No of Students in a class")
plt.xlabel("Class")
plt.ylabel("Number of Students")
plt.show()

Ausgabe:

Höhenmittelpunkt Hinzufügen von Wertbeschriftungen auf dem Matplotlib-Balkendiagramm mit Annotate

Abschluss

In diesem Artikel wurden zwei Möglichkeiten zum Hinzufügen von Wertlabels zu einem Matplotlib-Balkendiagramm mit den Funktionen text() und annotate() beschrieben. Wir haben auch gesehen, wie wir die Ausrichtung und Position der Beschriftungen durch Ändern des Parameters bestimmen können. Sie können nach Belieben eine der besprochenen Methoden verwenden, um Wertelabels zu einem Matplotlib-Balkendiagramm hinzuzufügen.

Autor: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Verwandter Artikel - Matplotlib Bar Chart