[PYTHON] Lorsque la variable que vous souhaitez utiliser comme exposant dans matplotlib comporte deux caractères ou plus

Je suis un peu troublé, c'est donc un mémorandum. L'environnement est Python 3.8.0, matplotlib 3.1.2.

Cas

J'ai écrit la source suivante avec l'intention de sortir la variable ʻa` comme un caractère exposant avec matplotlib.

import numpy as np
import matplotlib.pyplot as plt

a = 14
x = np.arange(0, 1, 0.1)
y = x**a

plt.plot(x, y, label=rf'$y=x^{a}$') #Zone problématique
plt.legend()
plt.show()

Quand je l'ai tracé, j'ai obtenu le chiffre suivant. Figure_1.png Malheureusement, seule la première lettre de la variable «a» a été identifiée comme un exposant.

Je pensais que ce n'était pas correct, et quand j'ai essayé de tracer avec une autre tranche d'onde comme $ y = x ^ {{a}} $, elle était affichée comme $ y = x ^ a $. C'était.

Solution

En conséquence, il a été résolu en augmentant les crochets ondulés par triple comme indiqué ci-dessous.

import numpy as np
import matplotlib.pyplot as plt

a = 14
x = np.arange(0, 1, 0.1)
y = x**a

plt.plot(x, y, label=rf'$y=x^{{{a}}}$') #Zubatsu et solution
plt.legend()
plt.show()

Figure_2.png

Pourquoi

Je l'ai écrit dans la documentation Python.

La partie de la chaîne en dehors des accolades est traitée comme écrite. Cependant, les doubles gribouillis '{{' ou '}}' sont remplacés par les simples gribouillis correspondants.

En d'autres termes, lorsque le premier support ondulé est simple, dans "f '{a}'", "a" est remplacé par "14" et le support ondulé est effacé, de sorte que seul le premier caractère est superposé. C'était.

Ensuite, dans le cas du double, dans "f '{{a}}'", le double support ondulé a été remplacé par un seul support ondulé, et{a}a été traité avec ʻa` intact. Donc, il était affiché comme $ y = x ^ a $.

Donc si vous faites un triple "f '{{{a}}}'", le crochet double onde sera remplacé par un crochet simple onde, et ʻa sera remplacé par 14et{14}` sera remplacé. Depuis qu'il a été traité, «14» a été correctement reconnu comme un caractère en exposant.

Cela ressemble à ce qui suit.

a = 14
print(f'x^{a}')     # x^14
print(f'x^{{a}}')   # x^{a}
print(f'x^{{{a}}}') # x^{14}

La syntaxe Tex correcte est en bas.

c'est tout. Je ferai de mon mieux en Python.

Recommended Posts

Lorsque la variable que vous souhaitez utiliser comme exposant dans matplotlib comporte deux caractères ou plus
Lorsque vous souhaitez ajuster l'intervalle de l'échelle de l'axe avec APLpy
Lorsque vous souhaitez l'utiliser tel quel lorsque vous l'utilisez avec lambda memo
Lorsque vous souhaitez mettre à jour le pilote Chrome.
[OpenCV] Lorsque vous voulez vérifier s'il est lu correctement avec imread
nb_conda_kernels est recommandé si vous souhaitez entrer dans l'environnement virtuel avec jupyter
Si vous ne savez pas comment dessiner le graphique que vous voulez avec matplotlib, il est pratique de regarder la galerie
Paramètres lorsque vous souhaitez exécuter python-mecab avec travis
Lorsque vous souhaitez filtrer avec le framework Django REST
[AWS] Que faire lorsque vous souhaitez piper avec Lambda
Lorsque vous souhaitez enregistrer les données initiales de Django avec des relations
Je connais? Analyse de données à l'aide de Python ou de choses que vous souhaitez utiliser quand vous le souhaitez avec numpy
Lorsque vous souhaitez envoyer un objet avec des requêtes à l'aide de flask
Mémorandum Expression régulière Lorsqu'il y a plusieurs caractères que vous souhaitez séparer dans la chaîne de caractères
Je souhaite résoudre le problème de fuite de mémoire lors de la sortie d'un grand nombre d'images avec Matplotlib
Je veux me mettre en colère contre ma mère quand la mémoire est serrée
[PostgreSQL] Comment accorder une autorité de superutilisateur lorsque le nombre d'utilisateurs (rôles) avec l'autorité de superutilisateur est de 0.
Un référentiel essentiel à utiliser lorsque vous souhaitez l'essayer avec ansible
Lorsque vous souhaitez remplacer une colonne par une valeur manquante (NaN) colonne par colonne
Remarque Python: lorsque vous souhaitez connaître les attributs d'un objet
Lorsque vous souhaitez modifier l'en-tête HTTP du client de test de Flask
Signifie mémo lorsque vous essayez de faire de l'apprentissage automatique avec 50 images
[Python] Comment ouvrir deux fichiers ou plus en même temps
Alignez la barre de couleurs sur la figure avec matplotlib
AssertNumQueries est utile si vous souhaitez tester facilement une requête N + 1 avec django
Il est plus pratique d'utiliser csv-table lors de l'écriture d'une table avec python-sphinx
Modèle de bonnes pratiques personnelles à utiliser lorsque vous souhaitez créer MVP avec Flask
Ce que vous voulez mémoriser avec la grammaire de base de "manipulation de chaînes" de python
Je souhaite afficher plusieurs images avec matplotlib.
Je veux commencer avec le noyau Linux, quelle est la structure de la tête de liste?
Lorsque les caractères et les points troubles / semi-turbides sont séparés et que vous souhaitez les combiner
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
[Introduction à Python] Quel est l'important "if __name__ == '__ main__':" lorsqu'il s'agit de modules?
Lorsqu'une variable locale portant le même nom que la variable globale est définie dans la fonction
Ajoutez des informations au bas de la figure avec Matplotlib
[CentOS] Lors de la modification ou de l’oubli du mot de passe root
Liens pour faire ce que vous voulez avec Sublime Text
Je souhaite créer manuellement une légende avec matplotlib
Choses à faire lorsque vous commencez à développer avec Django
Lorsque vous voulez plt.save dans l'instruction for
Quand vous pensez que la mise à jour de ManjaroLinux est étrange
Le langage de programmation que vous souhaitez pouvoir utiliser
Je veux lier une variable locale avec lambda
Je t'ai écrit pour regarder le signal avec Go
Notez ce que vous voulez faire à l'avenir avec Razpai
Opération utile lorsque vous souhaitez résoudre tous les problèmes dans plusieurs langages de programmation avec Codewars
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur
Golang: La question que vous souhaitez exécuter le processus à exactement 00:00 ou 30 minutes à l'intervalle spécifié.
Comment écrire quand on veut mettre un nombre après le numéro de groupe à remplacer par une expression régulière dans re.sub de Python
Lors de la génération d'un grand nombre de graphiques avec matplotlib, je ne souhaite pas afficher le graphique à l'écran (environnement jupyter)
Je souhaite générer une sortie lors de la conversion de la valeur du type (par exemple, datetime) qui n'est pas pris en charge lors de la sortie de json avec python