[PYTHON] Wenn die Variable, die Sie in Matplotlib als hochgestellt verwenden möchten, aus zwei oder mehr Zeichen besteht

Ich bin ein wenig besorgt, also ist es ein Memorandum. Die Umgebung ist Python 3.8.0, matplotlib 3.1.2.

Fall

Ich habe die folgende Quelle mit der Absicht geschrieben, die Variable "a" als hochgestelltes Zeichen mit matplotlib auszugeben.

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}$') #Problembereich
plt.legend()
plt.show()

Als ich es plottete, bekam ich die folgende Abbildung. Figure_1.png Leider wurde nur der erste Buchstabe der Variablen "a" als hochgestellt identifiziert.

Ich dachte, es sei nicht in Ordnung, und als ich versuchte, mit einer weiteren Wellenklammer wie $ y = x ^ {{a}} $ zu zeichnen, wurde es als $ y = x ^ a $ angezeigt. Es war.

Lösung

Infolgedessen wurde es gelöst, indem die Anzahl der Wellpappenhalterungen wie folgt dreifach erhöht wurde.

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 und Lösung
plt.legend()
plt.show()

Figure_2.png

Warum

Ich habe es in [Python-Dokumentation] geschrieben (https://docs.python.org/ja/3/reference/lexical_analysis.html#formatted-string-literals).

Der Teil der Zeichenfolge außerhalb der geschweiften Klammern wird als geschrieben behandelt. Die Doppelwellklammern '{{' oder '}}' werden jedoch durch die entsprechenden Einzelwellklammern ersetzt.

Mit anderen Worten, wenn die erste Wellpappenhalterung einfach ist, wird in "f" {a} "" a "durch" 14 "ersetzt und die Wellpappenhalterung wird gelöscht, sodass nur das erste Zeichen überlagert wird. Es war.

Dann wurde im Fall von double in "f '{{a}}'" die doppelte Wellpappenhalterung durch eine einzelne Wellpappenhalterung ersetzt, und "a" wurde unverändert gelassen und "{a}" wurde verarbeitet. Es wurde also als $ y = x ^ a $ angezeigt.

Wenn Sie also ein dreifaches "f '{{{a}}}'" machen, wird die Doppelwellenklammer durch eine Einzelwellenklammer ersetzt, und "a" wird durch "14" und "{14}" ersetzt. Da es verarbeitet wurde, wurde "14" korrekt als hochgestelltes Zeichen erkannt.

Es sieht wie folgt aus.

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

Die korrekte Tex-Syntax befindet sich unten.

das ist alles. Ich werde mein Bestes in Python geben.

Recommended Posts

Wenn die Variable, die Sie in Matplotlib als hochgestellt verwenden möchten, aus zwei oder mehr Zeichen besteht
Wenn Sie das Intervall der Achsenskala mit APLpy anpassen möchten
Wenn Sie es so verwenden möchten, wie es ist, wenn Sie es mit Lambda-Memo verwenden
Wenn Sie den Chrome-Treiber aktualisieren möchten.
[OpenCV] Wenn Sie überprüfen möchten, ob es mit imread richtig gelesen wird
nb_conda_kernels wird empfohlen, wenn Sie die virtuelle Umgebung mit jupyter betreten möchten
Wenn Sie nicht wissen, wie Sie das gewünschte Diagramm mit matplotlib zeichnen sollen, können Sie sich die Galerie bequem ansehen
Einstellungen, wenn Sie Python-Mecab mit Travis ausführen möchten
Wenn Sie mit dem Django REST-Framework filtern möchten
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
Wenn Sie die Anfangsdaten von Django mit Relationen registrieren möchten
Ich kenne? Datenanalyse mit Python oder Dingen, die Sie mit numpy verwenden möchten, wenn Sie möchten
Wenn Sie ein Objekt mit Anforderungen mithilfe der Flasche senden möchten
Memorandum Regulärer Ausdruck Wenn die Zeichenfolge mehrere Zeichen enthält, die Sie trennen möchten
Ich möchte das Problem des Speicherverlusts bei der Ausgabe einer großen Anzahl von Bildern mit Matplotlib lösen
Ich möchte wütend auf meine Mutter werden, wenn die Erinnerung knapp ist
[PostgreSQL] Gewähren der Superuser-Berechtigung, wenn die Anzahl der Benutzer (Rollen) mit Superuser-Berechtigung 0 beträgt.
Ein Gist-Repository, das Sie verwenden können, wenn Sie es mit ansible ausprobieren möchten
Wenn Sie eine Spalte spaltenweise durch einen fehlenden Wert (NaN) ersetzen möchten
Python Hinweis: Wenn Sie die Attribute eines Objekts kennen möchten
Wenn Sie den HTTP-Header des Testclients von Flask ändern möchten
Bedeutet Memo, wenn versucht wird, maschinelles Lernen mit 50 Bildern durchzuführen
[Python] So öffnen Sie zwei oder mehr Dateien gleichzeitig
Richten Sie die Farbleiste mit matplotlib an der Figur aus
AssertNumQueries ist nützlich, wenn Sie N + 1-Abfragen einfach mit django testen möchten
Es ist bequemer, csv-table zu verwenden, wenn Sie eine Tabelle mit Python-Sphinx schreiben
Persönliche Best-Practice-Vorlage, die verwendet werden soll, wenn Sie MVP mit Flask erstellen möchten
Was Sie sich mit der grundlegenden Grammatik "String Manipulation" von Python merken möchten
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte mit dem Linux-Kernel beginnen. Wie ist die Listenkopfstruktur?
Wenn Zeichen und trübe / halbtrübe Punkte getrennt sind und Sie sie kombinieren möchten
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
[Einführung in Python] Was ist das wichtige "if __name__ == '__ main__':" beim Umgang mit Modulen?
Wenn eine lokale Variable mit demselben Namen wie die globale Variable in der Funktion definiert ist
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
[CentOS] Beim Ändern oder Vergessen des Root-Passworts
Links, um mit Sublime Text zu tun, was Sie wollen
Ich möchte manuell eine Legende mit matplotlib erstellen
Dinge zu tun, wenn Sie anfangen, sich mit Django zu entwickeln
Wenn Sie in der for-Anweisung plt.save möchten
Wenn Sie das Update von ManjaroLinux für seltsam halten
Die Programmiersprache, die Sie verwenden möchten
Ich möchte eine lokale Variable mit Lambda binden
Ich habe dir geschrieben, dass du das Signal mit Go sehen sollst
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Nützliche Operation, wenn Sie alle Probleme in mehreren Programmiersprachen mit Codewars lösen möchten
[Python] Wenn Sie Ihr eigenes Paket im oberen Verzeichnis importieren und verwenden möchten
Golang: Die Angelegenheit, dass Sie den Prozess genau um 00:00 oder 30 Minuten im angegebenen Intervall ausführen möchten.
So schreiben Sie, wenn Sie eine Zahl nach der Gruppennummer setzen möchten, die durch einen regulären Ausdruck in Python ersetzt werden soll
Wenn ich mit matplotlib eine große Anzahl von Diagrammen generiere, möchte ich das Diagramm nicht auf dem Bildschirm anzeigen (Jupyter-Umgebung).
Ich möchte ausgeben, während der Wert des Typs (z. B. datetime) konvertiert wird, der bei der Ausgabe von json mit Python nicht unterstützt wird