関数グラフ: graph
Pythonが広く使われている理由の一つとして,データの可視化がたやすく,しかも美しくできることが挙げられます。ここで使用するMatplotlibは代表的な可視化パッケージで,様々な種類の2次元,3次元グラフを描画できます。ここではPythonの数式パーサ機能(cexprtk)を使って,'x'を変数とする1変数関数式と\(x\)の区間を入力し,簡単な関数の2Dグラフを描画するアプリケーションを作成します。
準備
Pythonパッケージとして,NumPy,Matplotlib,cexprtkがその環境にインストールされていることを確認しておいて下さい。入っていないようでしたらインストールしておきましょう。
ここではgraph
フォルダに全てのスクリプト,テンプレートファイルを作成するものとします。graph
フォルダの直下にHTMLテンプレートファイルを置くためのtemplates
フォルダと,生成されたグラフPNG画像ファイルを格納するためのstatic
フォルダを生成します。
関数グラフを描画してみる
数式入力のためのテンプレートHTML(template.html
)を作り,ここに下記のindex.htmlファイルを埋め込むようにします。どのようなテンプレートファイルが必要かは,今までの実習内容を見ながら自分で作成するようにして下さい。
index.pyを作成する
\(\sin(x)\)関数を,\(x = [0, 1]\)区間で描画したい時には次のように入力する。
グラフ描画画面
練習問題3
- 次の関数グラフを描画せよ。なお,四則演算(+, -, *, /)は省略せずに書くこと。
例) :例 \(2x/3 + \cos(x^2)\) → 2 * x / 3 + cos(x * x)
- \( (x - 3)(x + 4)(x - 1) \), \(x \in [-5, 5]\)
- \( \exp(\cos(x^2)) \), \(x \in [-3, 3]\)
- [できそうならチャレンジ!問題] 現状ではx区間の分割数を50(div=50)に固定している。この分割数もユーザが入力して変更できるようにせよ。