非常に基本的な質問があります。「annotate」コマンドを使用してpythonでmatplotlibを使用して改行する方法です。「\」と「\ n」を試しましたが、機能しません。そして「Latex」注釈と通常のテキスト注釈に対してこれを行う方法は?
どうもありがとうございました。
正確に何を試しましたか?
たまたま、生の文字列を使用していましたか(例:r"whatever"
)?
'\n'
は完全に機能しますが、ラテックスシーケンスがエスケープとして解釈されないように生の文字列を使用している場合は、python as '\'
および'n'
改行の代わりに。
例として:
import matplotlib.pyplot as plt
plt.annotate('Testing\nThis\nOut', xy=(0.5, 0.5))
plt.show()
一方、生の文字列を使用する場合:
import matplotlib.pyplot as plt
plt.annotate(r'Testing\nThis\nOut', xy=(0.5, 0.5))
plt.show()
ただし、両方が必要な場合は、次の例を検討してください。
import matplotlib.pyplot as plt
a = 1.23
b = 4.56
annotation_string = r"Need 1$^\mathsf{st}$ value here = %.2f" % (a)
annotation_string += "\n"
annotation_string += r"Need 2$^\mathsf{nd}$ value here = %.2f" % (b)
plt.annotate(annotation_string, xy=(0.5, 0.5))
plt.show()
それはあなたに与えます:
重要なのは、+=
を使用して事前に文字列を組み立てることです。そうすれば、生の文字列コマンド(r
で示される)と改行(\n
)を同じアノテーションに含めることができます。
_string="""some text"""
_のように、注釈文字列を定義するときに三重引用符を使用できます。これにより、文字列に入力した実際の改行は、出力の改行として解釈されます。これは、ラテックスと、コードの他の部分からのいくつかの数値パラメーターの印刷を含む例です。
_import matplotlib.pyplot as plt
I = 100
T = 20
annotation_string = r"""The function plotted is:
$f(x) \ = \ \frac{{I}}{{2}} \cos\left(2 \pi \ \frac{{x}}{{T}}\right)$
where:
$I = ${0}
$T = ${1}""".format(I, T)
plt.annotate(annotation_string, xy=(0.05, 0.60), xycoords='axes fraction',
backgroundcolor='w', fontsize=14)
plt.show()
_
私はいくつかの「エクストラ」を追加しました:
laTeXインタープリターを容易にするために、開始トリプル引用符の直前のr
二重中括弧_{{}}
_。これにより、.format()
コマンドとLaTeXが互いに混乱しなくなります。
xycoords='axes fraction'
_オプション。プロットの幅と高さに関して小数値で文字列の位置を指定します。backgroundcolor='w'
_オプション(プロットと重複する場合に便利)クイックソリューション
plt.annotate("I am \n"+r"$\frac{1}{2}$"+"\n in latex math environment", xy=(0.5, 0.5))