Matplotlib Contour Clabel Emplacement
Je voudrais contrôler l'emplacement de matplotlib clabels sur un tracé de contour, mais sans utiliser le manuel=True drapeau dans clabel. Par exemple, je tiens à préciser une coordonnée x, et ont des étiquettes créées dans les points qui traversent cette ligne. Je vois que vous pouvez obtenir l'emplacement de l'étiquette à l'aide de get_position(), mais je suis coincé à l'. Toute aide serait grandement appréciée. Merci!
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a pas de chemin construit dans matplotlib pour le faire. Vous êtes censé vivre avec les emplacements par défaut ou aller entièrement interactif avec manuel et à l'aide de la souris.
Vous pourriez vouloir ce fichier comme un rapport de bogue en amont afin qu'ils puissent améliorer leurs algorithmes.
Il y a de multiples façons de contourner cela. La première est de programmation pour placer du texte sur le contour de la figure. Vous ne serez pas en mesure fiable de supprimer les lignes en dessous le texte de cette façon. En supposant que vous avez un contour
c
vous pouvez trouver les lignes de contoursc.collections
. Pour chaque ligne de contour invoquerget_paths
et placez votre texte dans ce chemin.L'autre option serait de remplacer le code de manuel de placement (en
matplotlib.contour.BlockingContourLabeler
) ou de modifier le code qui trouve l'étiquette de postes (dansmatplotlib.contour.locate_label
), mais les deux fonctions sont assez denses. Si vous pouvez venir avec un travail de remplacement pourlocate_label
simplement remplacer l'ancienne méthode dans votre tracé macroBtw, si vous utilisez
ipython
vous pouvez facilement afficher la fonction source de votre session interactive avecou invoquer directement votre
$EDITOR
sur le fichier il est défini parOui, il y a maintenant un moyen de contrôle des emplacements des étiquettes de!
https://github.com/matplotlib/matplotlib/pull/642
manual
.