Matplotlib
前回はDjangoで複数のWebアプリを作成した際に起こる問題「formのactionのパス」に関して解説を行いました。
今回はDjangoというよりもMatplotlibで数式を表示するための方法を解説していきます。
ということで今回はVisual Studio Codeではなく、久々にJupyter notebookを使っていきます。
それでは始めていきましょう。
テキストを任意の位置に表示
まずは基本となるプログラムから作成していきますが、今回はグラフタイトルとしてではなく、テキストを表示する方法を使って、最終的に数式を数式として表示する方法を試していきます。
<セル1>
from matplotlib import pyplot as plt
fig=plt.figure()
plt.clf()
plt.text(0.1,0.5, "y=ax+b", fontsize=25)
plt.show()
実行結果
ちょっとだけ解説すると、「plt.text(xの位置,yの位置, ”表示するテキスト”, fontsize=フォントサイズ)」とすることで、グラフの任意の位置に、任意のサイズのテキストを表示することができます。
ちなみに「xの位置」、「yの位置」にグラフサイズよりも大きい(今回の場合は1以上)を指定することで、グラフの外にテキストを表示することもできます。
<セル2>
fig=plt.figure()
plt.clf()
plt.text(1.5,1, "y=ax+b", fontsize=25)
plt.show()
実行結果
これでテキストを表示する方法が分かりました。
ただ今回、重要なのは「数式」として表示する方法です。
問題点としては、例えば「\(y=ax^2+bx+c\)」というように上付き文字だったり、他にも下付き文字やまた数学独特の表記(インテグラルとかシグマ)とかはこのままではちゃんと表示できないということです。
数式を表示する方法
ということで数式を表示する方法を試していきましょう。
とは言っても、当分使用するのは累乗を示す上付き数字くらいなので、上付き文字とついでに下付き文字の表示の仕方を解説していきます。
そして必要に応じて、追記していきたいと思います。
まずはテキストを数式として認識させます。
そのためにはテキストを”$テキスト$”とします。
つまり今回の場合こうなります。
fig=plt.figure()
plt.clf()
plt.text(0.1, 0.5, "$y=ax+b$", fontsize=25)
plt.show()
実行結果
テキストがイタリック(斜体)になりました。
これで数式として認識されています。
上付き文字の表示
次に今回の目的である上付き文字の表示をしていきます。
先ほどの「\(ax\)」の部分のxを上付き文字にして「\(a^x\)」にしてみましょう。
その場合はaとxの間に「^」を入れます(ちなみに「キャレット」とか「ハット」と読むようです)。
ということでこんな感じになります。
fig=plt.figure()
plt.clf()
plt.text(0.1, 0.5, "$y=a^x+b$", fontsize=25)
plt.show()
実行結果
上付き文字になりました。
下付き文字の表示
次に下付き文字を表示してみましょう。
下付き文字を表示するには「_」(アンダーバー)を使います。
「\(a_x\)」を表示してみましょう。
fig=plt.figure()
plt.clf()
plt.text(0.1, 0.5, "$y=a_x+b$", fontsize=25)
plt.show()
実行結果
下付き文字も表示できました。
これで今回の目的だった数式を表示するということができました。
ということで次回は二次関数表示アプリの数式と頂点を表示するようにプログラムを修正していきましょう。
ではでは今回はこんな感じで。
コメント