はじめに
このチュートリアルでは、Python の Matplotlib ライブラリを使って、曲線の下の領域を表す陰付き領域付きの単純な折れ線グラフを作成する方法を示します。このグラフには、テキストラベル、軸ラベル、およびカスタム目盛りの配置とラベルが含まれています。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。そうすれば、迅速に問題を解決します。
関数を定義する
まず、描画する関数を定義します。この例では、関数は (x - 3) _ (x - 5) _ (x - 7) + 85 です。
def func(x):
return (x - 3) * (x - 5) * (x - 7) + 85
積分範囲を定義する
次に、積分の範囲を定義します。この例では、範囲は a = 2 および b = 9 です。
a, b = 2, 9
x と y の値を作成する
numpyのlinspace関数を使って x 値の範囲を生成します。そして、手順 1 で定義した関数を使って対応する y 値を生成します。
import numpy as np
x = np.linspace(0, 10)
y = func(x)
グラフを作成する
subplotsを使ってグラフと軸のオブジェクトを作成します。plotを使って x と y の値をプロットします。set_ylimを使って y 軸の範囲を 0 から始まるように設定します。
fig, ax = plt.subplots()
ax.plot(x, y, 'r', linewidth=2)
ax.set_ylim(bottom=0)
塗りつぶした領域を作成する
Polygonパッチを使って塗りつぶした領域を作成します。linspaceと手順 1 で定義した関数を使って領域の x と y の値を生成します。そして、領域の頂点をタプルのリストとして定義します。最後に、Polygonオブジェクトを作成し、add_patchを使って軸に追加します。
from matplotlib.patches import Polygon
ix = np.linspace(a, b)
iy = func(ix)
verts = [(a, 0), *zip(ix, iy), (b, 0)]
poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')
ax.add_patch(poly)
積分のラベルを追加する
textを使ってグラフに積分のラベルを追加します。ラベルは a と b の中点に中央揃えにし、mathtext を使ってフォーマットする必要があります。
ax.text(0.5 * (a + b), 30, r"$\int_a^b f(x)\mathrm{d}x$",
horizontalalignment='center', fontsize=20)
軸のラベルと目盛りのラベルを追加する
figtextを使って x 軸と y 軸のラベルを追加します。spinesを使って上と右の目盛り線を非表示にします。set_xticksとset_yticksを使ってカスタムの目盛りの配置とラベルを設定します。
fig.text(0.9, 0.05, '$x$')
fig.text(0.1, 0.9, '$y$')
ax.spines[['top', 'right']].set_visible(False)
ax.set_xticks([a, b], labels=['$a$', '$b$'])
ax.set_yticks([])
グラフを表示する
グラフを表示するにはshowを使用します。
plt.show()
まとめ
このチュートリアルでは、Python の Matplotlib ライブラリを使って、曲線の下の面積を表す塗りつぶした領域付きの単純な折れ線グラフを作成する方法を示しました。このグラフには、テキストラベル、軸のラベル、およびカスタムの目盛りの配置とラベルが含まれていました。このチュートリアルで概説されている手順に従うことで、自分自身のデータに対して同様のグラフを作成することができます。