/ / Ist es möglich, die Python-String-Formatmethode mit den Latex-Funktionen von matplotlib zu verwenden? - Python, Matplotlib

Ist es möglich, die Python-String-Formatmethode mit Matplotlibs-Latex-Funktionen zu verwenden? - Python, Matplotlib

Mit matplotlib ist es möglich, Achsen und Zeichnungen mit Latex zu beschriften. d.h.

import matplotlib.pyplot as plt

data = pandas.DataFrame({"A": [1, 2, 3, 4, 5],
"B": [6, 7, 8, 9, 10],
"C": [11, 12, 13, 14,15]})
data["A/B"] = data["A"]/data["B"]
plt.plot(data["C"], data["A/B"])
new_name1 = "new_name"
new_name2 = "new_name"
plt.title(r"$frac{A}{B}$")
plt.show()

Bildbeschreibung hier eingeben

Ich möchte Latex mit Pythons String kombinieren .format Methode. (In diesem abstrakten Beispiel ist es nicht notwendig, aber in meiner eigenen Arbeit).

import matplotlib.pyplot as plt

data = pandas.DataFrame({"A": [1, 2, 3, 4, 5],
"B": [6, 7, 8, 9, 10],
"C": [11, 12, 13, 14,15]})
data["A/B"] = data["A"]/data["B"]
plt.plot(data["C"], data["A/B"])
new_name1 = "new_name1"
new_name2 = "new_name2"
plt.title(r"$frac{{}}{{}}$".format(new_name1, new_name2))
plt.show()

gibt mir:

Traceback (most recent call last):
File "/home/b3053674/Documents/LargeStudy/large_study/plot_locally.py", line 912, in <module>
plt.title(r"$frac{{}}{{}}$".format(new_name1, new_name2))
KeyError: "\{\}"

und

import matplotlib.pyplot as plt

data = pandas.DataFrame({"A": [1, 2, 3, 4, 5],
"B": [6, 7, 8, 9, 10],
"C": [11, 12, 13, 14,15]})
data["A/B"] = data["A"]/data["B"]
plt.plot(data["C"], data["A/B"])
new_name1 = "new_name"
new_name2 = "new_name"
plt.title(r"$frac{{}}{{}}$".format(new_name1, new_name2))
plt.show()

gibt mir:

ValueError:
frac{}{}
^
Expected frac{num}{den} (at char 5), (line:1, col:6)

Ist es auf diese Weise möglich, Zeichenfolgen mit Latex zu formatieren? Wenn ja, wie mache ich das?

Antworten:

2 für die Antwort № 1

Sie benötigen drei Zahnspangen:

plt.title(r"$\frac{{{}}}{{{}}}$".format(new_name1, new_name2))

Das innere Paar {} wird unter Verwendung der angegebenen Variablen und der äußeren formatiert {{ und }} sind Escape-Sequenzen für Single { und }.


1 für die Antwort № 2

Ein einfacher Weg ist die Verwendung printf-ähnliche Formatierung:

data = "frac{%s}{%s}" % ("A", "B")