W przypadku matplotlib możliwe jest użycie lateksu do etykietowania osi i wykresów. to znaczy
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()
Chciałbym połączyć lateks z łańcuchem pytona .format
metoda. (Chociaż nie jest to konieczne w tym abstrakcyjnym przykładzie, jest to w mojej pracy).
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()
daje mi:
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: "\{\}"
i
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()
daje mi:
ValueError:
frac{}{}
^
Expected frac{num}{den} (at char 5), (line:1, col:6)
Czy w ten sposób można użyć formatowania łańcuchów za pomocą lateksu? Jeśli tak, jak mam to zrobić?
Odpowiedzi:
2 dla odpowiedzi № 1Potrzebujesz trzech szelek:
plt.title(r"$\frac{{{}}}{{{}}}$".format(new_name1, new_name2))
Wewnętrzna para {}
zostanie sformatowany przy użyciu podanych zmiennych i zewnętrznego {{
i }}
są Sekwencje ewakuacyjne na singiel {
i }
.
1 dla odpowiedzi nr 2
Prosty sposób to użyć printf
podobne do formatowania:
data = "frac{%s}{%s}" % ("A", "B")