Ich denke, dass die automatische Erstellung in den meisten Fällen für die Matplot-Legende ausreicht. Da jedoch Unregelmäßigkeiten aufgetreten sind, notieren Sie sich, wie Sie sie manuell einstellen.
Vielleicht ist dies in den meisten Fällen ausreichend, und Sie sollten Ihre Daten so organisieren, dass Sie dies tun können.
import numpy as np
from matplotlib import pyplot as plt
red_x, red_y = np.random.randn(10), np.random.randn(10)
blue_x, blue_y = np.random.randn(10), np.random.randn(10)
green_x, green_y = np.random.randn(10), np.random.randn(10)
plt.scatter(red_x, red_y, c="r", alpha=0.5, label="red")
plt.scatter(blue_x, blue_y, c="b", alpha=0.5, label="blue")
plt.scatter(green_x, green_y, c="g", alpha=0.5, label="green")
plt.legend()
plt.show()
Wenn Sie mit speziellen Situationen oder speziellen Daten zu tun haben und den obigen Code nicht erstellen können oder wenn der Code verschmutzt ist, können Sie ihn wie folgt manuell einstellen.
import numpy as np
from matplotlib import pyplot as plt
red_x, red_y = np.random.randn(10), np.random.randn(10)
blue_x, blue_y = np.random.randn(10), np.random.randn(10)
green_x, green_y = np.random.randn(10), np.random.randn(10)
#Entfernen Sie das Etikett vom Datenteil
plt.scatter(red_x, red_y, c="r", alpha=0.5)
plt.scatter(blue_x, blue_y, c="b", alpha=0.5)
plt.scatter(green_x, green_y, c="g", alpha=0.5)
#Zeichnen Sie leere Daten mit der Bezeichnung für die Legende (tatsächlich wird nichts geplottet)
plt.scatter([], [], c="r", alpha=0.5, label="red")
plt.scatter([], [], c="b", alpha=0.5, label="blue")
plt.scatter([], [], c="g", alpha=0.5, label="green")
plt.legend()
plt.show()
Es scheint, dass es verwendet werden kann, wenn die Transparenz und die Größe der Punkte nur im Legendenteil geändert werden.