HOWTO · Matplotlib
Wie man die Legende des Streudiagramms in Matplotlib erstellt
Es wird gezeigt, wie Sie mit der Funktion matplotlib.pyplot.legend eine Legende eines Streudiagramms erzeugen können.
Auf dieser Seite
Legende ist einfach die Beschreibung der verschiedenen Elemente in einer Abbildung. Mit Hilfe der Funktion matplotlib.pyplot.legend können wir eine Legende eines Streudiagramms erzeugen.
Hinzufügen einer Legende zur 2D Streudiagramme in Matplotlib
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [i ** 2 for i in x]
y2 = [2 * i + 1 for i in x]
plt.scatter(x, y1, marker="x", color="r", label="x**2")
plt.scatter(x, y2, marker="o", color="b", label="2*x+1")
plt.legend()
plt.show()
Ausgabe:
Wir haben in der Abbildung zwei getrennte Streudiagramme: eines, das durch x dargestellt wird, und ein anderes, das durch die o-Markierung. Wir weisen jedem Streudiagramm das label zu, das bei der Generierung der Legende als Tag verwendet wird. Dann erstellen wir die Legende in der Abbildung mit der Funktion legend() und zeigen schließlich die gesamte Abbildung mit der Methode show() an.
Wir können auch direkt ein Tupel von Beschriftungen als Argument an die Methode legend() übergeben und die Position der Legende mit dem Parameter loc der Methode legend() ändern.
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [i ** 2 for i in x]
y2 = [2 * i + 1 for i in x]
plt.scatter(x, y1, marker="x", color="r")
plt.scatter(x, y2, marker="o", color="b")
plt.legend(("x**2", "2*x+1"), loc="center left")
plt.show()
Ausgabe:
Durch dieses Verfahren entsteht eine Figur mit zwei Streudiagrammen und einer Legende, die in der Mitte links des Randkastens der Achsen platziert wird.
Hinzufügen einer Legende zum 3D Streudiagramm in Matplotlib
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 1, 4, 5, 6]
z1 = [i + j for (i, j) in zip(x, y)]
z2 = [3 * i - j for (i, j) in zip(x, y)]
axes = plt.subplot(111, projection="3d")
axes.plot(x, y, z1, "x", label="x+y")
axes.plot(x, y, z2, "o", label="3*x-y")
plt.legend(loc="upper left")
plt.show()
Ausgabe:
Um eine Legende für 3D Streudiagramme zu erstellen, verwenden wir die plot() Methode anstelle der scatter() Methode; das liegt daran, dass die legend() Methode die Patch3DCollection, die von der scatter() Methode der Axes3D Instanz zurückgegeben wird, nicht unterstützt.