Python3 – matplotlib.pyplot

plot()

plot()に引数を与えて実行し、show()を実行するとGUIでグラフが表示される。

python-matplot-pyplot-yonly

表示結果で以下の点に留意。

  • x軸は0~3の範囲、y軸は1~4の範囲
    • plot()に引数リストを1つだけ与えると、それはy軸の値と解釈される→[1, 2, 3, 4]
    •  x軸の値は自動的に生成される
      • y軸と同じ幅でPythonのレンジの開始値0から始められる→[0, 1, 2, 3]
  • 直線が描かれている
    • オプション指定をしない場合、各点が直線で結ばれる

 

グラフの例

python-matplot-pyplot-cossin

棒グラフ

基本形

pyplot.bar()に2つの引数を与えるのが基本形。

  • 第1引数は横軸のリスト
  • 第2引数は横軸リストの要素に対応した値

python-matplot-pyplot-bar01

bar(x, y)の横軸xの要素はfloatでなければならないが、これを文字表記に変更する。

python-matplot-pyplot-bar02

ただし項目名が左寄せになっているので、これらをセンタリングする。

なおxticksを指定せず数値のままでセンタリングすると、xで与えた数値が中央に来るよう調整される。

python-matplot-pyplot-bar03

棒の位置や幅のコントロール

デフォルトでは棒の位置はxで与えた数値に左寄せされる。またwidth=で棒の幅を指定することができる。

以下のように指定することで、ヒストグラムのような図を描くこともできる。

python-matplot-pyplot-bar04

hist()関数の戻り値を使って、以下のように書けるが、時にグラフの両側に空きができてしまうので、さらに検討が必要。

 

ヒストグラム

pyplotで簡単にヒストグラムが描ける。デフォルトでは縦軸は度数。

python-matplot-pyplot-histgram-normed-false

縦軸を頻度にしたい場合は、normed=TRUEオプションをつける。

縦軸が小数になっていて、各階級の頻度が1/10bins→0.1程度になっていることに注意。

python-matplot-pyplot-histgram-normed-true

頻度分布について

上の例ではうまく頻度分布が表示されているが、以下のようにうまくいかない場合がある。

python-matplot-pyplot-histgram-normed-trouble

ヒストグラムとplotの重ね合わせ

ヒストグラムのrankの範囲とplotのx軸の範囲を同じにすれば、こちらの例のように重ねて描くことができる。

ヒストグラムの戻り値

hist()は3つの戻り値を返す。

bin_count
各ビンの度数。
bin_position
ビン数とrangeに応じたビンの位置。
patches
各ビンのオブジェクトの配列。ビンごとに色を変えるなどの操作ができる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です