[英]matplotlib latex in legend label vs in axis label
對於matplotlib,您可以使用tex命令語法標記圖例和軸標簽。 你應該在字符串前面添加r:r“my tex label”。 但我不明白的是為什么傳奇標簽不關心,但軸標簽確實在乎。
為什么軸標簽的行為與圖例標簽不同(反之亦然)?
MWE1 - 崩潰
## Hello World! I crash!
import numpy as np
import matplotlib.pyplot as plt
x = np.ones(5)
plt.plot(x, x, label="$\bar{x}$ (but not really)")
plt.xlabel("$\bar{y}$ (but not really)") # I cause the crash
plt.show()
MWE2 - 不會崩潰
import numpy as np
import matplotlib.pyplot as plt
x = np.ones(5)
plt.plot(x, x, label="$\bar{x}$ (but not really)") # I still don't need prepended r
plt.xlabel(r"$\bar{y}$ (but not really)")
plt.show()
那是不公平的比較。 來自MWE2的情節標簽從未使用過,因為沒有傳說; 因此它不會引起任何錯誤。 一旦使用plt.legend()
生成此圖例,它當然會導致與包含MathText命令的所有其他字符串所期望的相同類型的錯誤,並且不是原始字符串。
這崩潰了:
import numpy as np
import matplotlib.pyplot as plt
x = np.ones(5)
plt.plot(x, x, label="$\bar{x}$ (but not really)")
plt.xlabel(r"$\bar{y}$ (but not really)")
plt.legend()
plt.show()
這不會崩潰,因為所有字符串都是原始字符串
import numpy as np
import matplotlib.pyplot as plt
x = np.ones(5)
plt.plot(x, x, label=r"$\bar{x}$ (but not really)")
plt.xlabel(r"$\bar{y}$ (but not really)")
plt.legend()
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.