Je produis quelques parcelles dans matplotlib et je voudrais ajouter un texte explicatif pour certaines des données. Je veux avoir une chaîne dans ma légende en tant qu'élément de légende distinct au-dessus de l'élément "0-10". Est-ce que quelqu'un sait s'il existe un moyen possible de le faire?
Voici le code de ma légende:ax.legend(['0-10','10-100','100-500','500+'],loc='best')
Sûr. ax.legend()
a une forme à deux arguments qui accepte une liste d'objets (poignées) et une liste de chaînes (étiquettes). Utilisez un objet factice (aka a "proxy artist" ) pour votre chaîne supplémentaire. J'ai choisi un matplotlib.patches.Rectangle
sans remplissage et 0 ligne avec ci-dessous, mais vous pouvez utiliser n'importe quel artiste pris en charge.
Par exemple, supposons que vous ayez 4 objets barres (puisque vous n'avez pas posté le code utilisé pour générer le graphique, je ne peux pas le reproduire exactement).
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
fig = plt.figure()
ax = fig.add_subplot(111)
bar_0_10 = ax.bar(np.arange(0,10), np.arange(1,11), color="k")
bar_10_100 = ax.bar(np.arange(0,10), np.arange(30,40), bottom=np.arange(1,11), color="g")
# create blank rectangle
extra = Rectangle((0, 0), 1, 1, fc="w", fill=False, edgecolor='none', linewidth=0)
ax.legend([extra, bar_0_10, bar_10_100], ("My explanatory text", "0-10", "10-100"))
plt.show()