[Python] Obtenir / modifier l'étiquette d'échelle de la figure

Cet article suppose ʻimport matplotlib.pyplot as plt et fig = plt.figure () `.

Résumé

Pour obtenir l'étiquette d'échelle de la sortie de la figure en Python

--Plt.draw () pour confirmer le chiffre --locs, labs = Obtenir des échelles avec plt.xticks () --_ labs = [lab.get_text () for lab in labs] pour obtenir la chaîne de caractères de l'étiquette de l'échelle

La procédure est obligatoire. Vous pouvez également l'éditer en réécrivant directement les éléments des labs (exemple: labs [0] .set_va ('top')). Cette dernière méthode peut être plus pratique car elle permet de modifier d'autres que des chaînes de caractères.

~ Explication ci-dessous ~

Obtenez l'échelle

Lorsque la chaîne de caractères de l'échelle ne peut pas être obtenue

Même si vous obtenez la sortie d'échelle par Python par défaut, les informations d'étiquette peuvent ne pas être incluses. Par exemple

plt.plot( [ 5, 7, 6 ] )

Lorsque vous exécutez, la figure ci-dessous s'affiche,

キャプチャ.PNG

Même si vous obtenez cette échelle, les informations sur l'étiquette sont ''. Notez que la deuxième valeur de retour de plt.xticks () n'est pas une chaîne de caractères, mais une liste d'objets matplotlib.text.Text, donc la chaîne de caractères est acquise par la méthode .get_text (). :

xlocs, xlabs = plt.xticks()
print( xlocs ) # [-0.5  0.   0.5  1.   1.5  2.   2.5  3.   3.5]
print( [ xlab.get_text() for xlab in xlabs ] ) # ['', '', '', '', '', '', '', '', '']

ylocs, ylabs = plt.xticks()
print( ylocs ) # [4.5 5.  5.5 6.  6.5 7.  7.5 8.  8.5]
print( [ ylab.get_text() for ylab in ylabs ] ) # ['', '', '', '', '', '', '', '', '']

De plus, des échelles supplémentaires (-0,5 sur l'axe horizontal, etc.) sont incluses en haut, en bas, à gauche et à droite de l'échelle de la figure actuellement sortie. C'est parce que le côté Python est dans un état où "l'échelle est actuellement indécise et sera ajustée de manière appropriée en fonction de l'édition supplémentaire". stackoverflow: Getting empty tick labels before showing a plot in Matplotlib

Confirmation de la figure → Il est possible d'obtenir la chaîne de caractères de l'échelle

Par conséquent, exécutez «plt.draw ()» ou «fig.canvas.draw ()» pour confirmer une fois le chiffre. Ensuite, la chaîne de caractères de l'échelle est également fixe, de sorte que vous pouvez obtenir la chaîne de caractères affichée dans la figure (bien que la figure affichée ne change pas).

plt.plot( [ 5, 7, 6, 8 ] )
plt.draw()

xlocs, xlabs = plt.xticks()
print( xlocs ) # [-0.5  0.   0.5  1.   1.5  2.   2.5  3.   3.5]
print( [ xlab.get_text() for xlab in xlabs ] ) # ['−0.5', '0.0', '0.5', '1.0', '1.5', '2.0', '2.5', '3.0', '3.5']

ylocs, ylabs = plt.yticks()
print( ylocs ) # [4.5 5.  5.5 6.  6.5 7.  7.5 8.  8.5]
print( [ ylab.get_text() for ylab in ylabs ] )
# ['4.5', '5.0', '5.5', '6.0', '6.5', '7.0', '7.5', '8.0', '8.5']

Mise à jour de l'étiquette de l'échelle

Même à ce stade, des échelles supplémentaires en haut, en bas, à gauche et à droite sont incluses, donc si vous refaites plt.xticks (xlocs, xlabs) sans modification, les échelles supplémentaires seront affichées et les marges de la figure deviendront grandes. Masu:

plt.xticks( xlocs, xlabs )
plt.yticks( ylocs, ylabs )

キャプチャ.PNG

Par conséquent, si vous ne voulez pas changer la plage de la figure, spécifiez la plage de la figure avec xlim (), ylim (), ou coupez la liste des échelles selon le cas (exemple: xlocs [1: -1] ) doivent le faire.

xmin, xmax = plt.xlim()
ymin, ymax = plt.ylim()
plt.xticks( xlocs, xlabs )
plt.yticks( ylocs, ylabs )
plt.xlim( xmin, xmax )
plt.ylim( ymin, ymax )
# === OR ===
plt.xticks( xlocs[1:-1], xlabs[1:-1] )
plt.yticks( ylocs[1:-1], ylabs[1:-1] )

Accès direct à la classe matplotlib.text.Text

Dans ce qui précède, la chaîne de caractères de l'étiquette d'échelle a été une fois obtenue, mais en accédant directement à la classe matplotlib.text.Text obtenue par plt.xticks (), ** modifiez l'apparence de l'échelle un par un **. Je peux. Pour le modifier, utilisez la liste de méthodes (set_ *) sur la page inférieure. Par exemple officiel matplotlib: matplotlib.text.Text

xlocs, xlabs = plt.xticks()
xlabs[3].set_color( 'red' )
xlabs[5].set_va( 'center' )

Ensuite, certaines couleurs et hauteurs de l'axe horizontal sont modifiées. キャプチャ.PNG

Vous pouvez également en profiter pour décaler les étiquettes lorsque les étiquettes de graduation deviennent trop longues: stackoverflow: Aligning rotated xticklabels with their respective xticks

Recommended Posts

[Python] Obtenir / modifier l'étiquette d'échelle de la figure
[Python] Récupère le code de caractère du fichier
Récupérer le contenu de git diff depuis python
[Python] Obtenez les principaux sujets de Yahoo News
Récupérer l'appelant d'une fonction en Python
le zen de Python
[Python] Obtenez la dernière date de mise à jour du site Web
[Python] Get the day (anglais et japonais)
Obtenez la date de mise à jour du fichier de mémorandum Python.
Comment obtenir le nombre de chiffres en Python
[Python] Obtenez le chemin d'accès officiel du fichier de raccourci (.lnk)
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
[python] Récupère la liste des classes définies dans le module
Récupérer le code retour d'un script Python depuis bat
Obtenir la taille (nombre d'éléments) de Union Find en Python
[Python] Obtenir la liste des noms ExifTags de la bibliothèque Pillow
[Python] Résumé de la façon de spécifier la couleur de la figure
Obtenez l'état de fonctionnement de JR West avec Python
[Python] Obtenez le nombre de vues de tous les articles publiés
Obtenez l'URL de la destination de la redirection HTTP en Python
Vers la retraite de Python2
Obtenez le nombre de chiffres
[Python] Récupérez le mois précédent
À propos des fonctionnalités de Python
Le pouvoir des pandas: Python
Essayez d'obtenir la liste des fonctions du paquet Python> os
Obtenez le nombre d'éléments spécifiques dans la liste python
Obtenez l'index de chaque élément de la matrice de confusion en Python
Récupérez la source de la page à charger indéfiniment avec python.
L'histoire de Python et l'histoire de NaN
Obtenez le nombre de vues de Qiita
[Python] La pierre d'achoppement de l'importation
First Python 3 ~ Le début de la répétition ~
Obtenez le chemin du bureau en Python
Existence du point de vue de Python
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
pyenv-changer la version python de virtualenv
Obtenez le chemin du script en Python
Comment obtenir la version Python
Obtenir les attributs d'un objet
Obtenez le premier élément du jeu de requêtes
[Python] Comprendre le potentiel_field_planning de Python Robotics
Revue des bases de Python (FizzBuzz)
Obtenez le nombre d'abonnés Youtube
Obtenez le chemin du bureau en Python
Obtenez le nom d'hôte en Python
Remarque Python: obtenez le mois en cours
À propos de la liste de base des bases de Python
Apprenez les bases de Python ① Débutants élémentaires
Remarque: obtenez les premier et dernier éléments de Python OrderedDict de manière non destructive
[Compris dans la figure] Gestion de l'environnement virtuel Python par Pipenv
[Python] Comment obtenir le premier et le dernier jour du mois
N'hésitez pas à changer l'étiquette de légende avec Seaborn en python
[Python] Obtenir la date de mise à jour d'un article d'actualité à partir de HTML
[python] Obtenez le rang des valeurs dans la liste par ordre croissant / décroissant
Obtenez et définissez la valeur du menu déroulant en utilisant Python et Selenium
Obtenez le titre et la date de livraison de Yahoo! News en Python
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python