読者です 読者をやめる 読者になる 読者になる

気ままに宙をみる

宇宙, 統計, 時々私事

初めてのmatplotlib(2次関数のプロット)

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin

pythonのグラフ作成にはmatplotlibというパッケージを利用することができます。
pythonのコードの中でグラフを作れるという点が非常に便利で、データ処理とグラフ作成を同じコード内で行うことができます。

グラフ描写にはgnuplotなんかも使えるのですがgnuplotを使う場合データ処理は別の言語で書いて、それをテキストファイルに出力して、gnuplotでそれを読み込んで描写させるという手順が必要です。matplotlibでは余計なファイルが無駄に増えないといった利点があります。またpythonのコードを使ってグラフが作れるのでpythonが使える人なら扱いやすいと思います。

早速matplotlibを使って簡単なグラフを描写してみましょう。
まずmatplotlib.pyplotとnumpyをインポートします。matplotlib.pyplotはグラフをプロットするのに必要なライブラリでpltと省略されることが多いです。またnumpyは数値計算ライブラリで行列計算したり、数値のリストを生成することができます。npと省略されることが多いです。どんなグラフを描くにしてもこの2つのライブラリはほぼ必須です。(matplotlib,numpyはインストールが必要です。インストールの仕方は他の記事を参考にしてください。)

さてmatplotlibを使って2次関数のグラフを描いてみましょう。

# -*- coding: utf-8 -*-
#y = x^2の2次関数のグラフを作成

import matplotlib.pyplot as plt  
import numpy as np 
x = np.arange(0,10,0.01) 
y = x**2
plt.plot(x,y) 
plt.show() 

f:id:cranethree:20150517162338p:plain

図のようなグラフが表示されるはずです。
コードの説明を少しすると、最初の2行でmatplotlib.pyplotとnumpyをインストールしています。
pythonではplt.plot()関数でグラフを描写できるのですが、そこに渡すのはリストである必要があります。
今回はx = np.arange(0,10,0.01)で0から10まで0.01刻みのリストを作っています。
x = [0,0.01,0.02,...,9.99]です。その後、このリストを2乗したリストを作ってyに入れています。y = [0,0.01,0.04,...,99.8001]です。
そしてこの2つのリストをplt.plot()に渡してグラフを作っています。

リストを作るならnumpyを使わなくてもpythonのrange()関数を使えばいいと思われるかもしれません。しかし、range()関数は1以下の刻みを作ることができないので曲線の描写には不向きです。
きちんとnumpyを使ってリストを作るようにしましょう。