Je trace une carte de densité à partir d'un fichier csv en utilisant histogram2D, contourf et matplotlib. S'il vous plaît jeter un oeil sur mon résultat: Personnalisez les intervalles d'une légende dans matplotlib
, ma demande principale est ho de personnaliser les intervalles de ma légende, je dois avoir seulement 5 intervalles avec un pas de 0,8 par exemple, et en matière de . l'intervalle> 2.5 je veux que ce soit juste sur l'intervalle avec la même couleur et étiquetés par "2.5 et plus est ici le code j'utilise pour personnaliser ma légende:
cmap = plt.cm.get_cmap('Paired', 8)
cs = m.contourf(xi, yi, g, cmap = cmap)
cbar = plt.colorbar(cs, orientation='horizontal')
cbar.set_label('la densite des impacts foudre',size=18)
# Set borders in the interval [0, 1]
bound = np.linspace(0, 1, 9)
# Preparing borders for the legend
bound_prep = np.round(bound * 7, 2)
# Creating 8 Patch instances
plt.legend([mpatches.Patch(color=cmap(b)) for b in bound[:-1]],
['{} - {}'.format(bound_prep[i], bound_prep[i+1] - 0.01) for i in range(8)], bbox_to_anchor=(1.05, 1), loc=2)
plt.gcf().set_size_inches(15,15)
plt.show()
i besoin donc, fondamentalement, une légende similaire à celui-ci:
Des idées?
J'ai du mal à comprendre le résultat souhaité. Vous dites que vous voulez avoir 5 intervalles, mais déjà dans le code vous avez 8 niveaux. Aussi, si l'intervalle est de 0,8, vous obtenez seulement 3 et un huitième d'intervalles jusqu'à 2,5. Comment les couleurs des intervalles devraient-elles se rapporter aux couleurs du tracé de contour? – ImportanceOfBeingErnest
bien apparemment vous comprenez vraiment mon résultat désiré, alors oui j'ai 8 intervalles mais je dois gérer afin de garder seulement 6 ou 5 intervalles avec un pas inférieur à 0,8 bien sûr et les intervalles jusqu'à 2,5 devraient être en un intervalle résumé appelé 2.5 et ci-dessus et avec une couleur unique. –