Je pense que la création automatique est suffisante pour la légende du matplot dans la plupart des cas, mais comme des irrégularités se sont produites, notez comment la définir manuellement.
Cela est peut-être suffisant dans la plupart des cas et vous devez organiser vos données pour pouvoir le faire.
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()
Si vous avez affaire à des situations spéciales ou à des données spéciales et que vous ne pouvez pas créer le code ci-dessus, ou si le code devient sale, vous pouvez le définir manuellement comme suit.
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)
#Retirez l'étiquette de la partie de données
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)
#Tracer des données vides avec une étiquette pour la légende (en fait, rien n'est tracé)
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()
Il semble qu'il ne puisse être utilisé lors de la modification de la transparence et de la taille des points que dans la partie légende.
Recommended Posts