2017-03-20 25 views
1

matplotlibでは、texコマンド構文を使用して凡例と軸ラベルにラベルを付けることができます。あなたはと仮定してとし、rを文字列に追加します。r "my tex label"。しかし、私が理解できないのは、なぜ凡例のラベルケアではなく、の軸ラベルが気にしないかということです。凡例ラベル内のmatplotlibラテックスと軸ラベル

なぜ軸ラベルは凡例ラベルとは異なる動作をします(またはその逆)。

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は - 何の公正comparissonません

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() 

答えて

2

をクラッシュしません。凡例がないので、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() 
+0

あると私は今、これを尋ね恥ずかしい、クラッシュしません。だからシンプルな、一息。 –

関連する問題