Hinzufügen von Wertelabels zu Matplotlib-Balkendiagrammen
-
Hinzufügen von Wertelabels zu Matplotlib-Balkendiagrammen mit der Methode
pyplot.text()
-
Fügen Sie Wertelabels auf dem Matplotlib-Balkendiagramm mit der Funktion
pyplot.annotate()
hinzu - Abschluss
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
undy
sind die Koordinaten des Graphen, wo der Text platziert wird. Der Parameters
enthält den Textstring. - Der Parameter
fontdict
wird verwendet, um Eigenschaften wie Schriftart und Größe des Textes zu ändern. Der Standardwert istNone
. - 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:
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:
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:
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)
, wobeix
undy
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:
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:
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:
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.
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