pythonのpandasとnotebookを使ってデータ分析(3)

それでは、前回までの続きで「matplotlib」でグラフを表示してみましょう。
必要なモジュールのインポートと、表示するデータをセルに入力する。

%matplotlib inline
import pandas
import matplotlib.pyplot as plt
df = pandas.DataFrame({
        'x': [6.559112404564946264e-01,
                 6.013845740818111185e-01,
                 4.449591514877473397e-01,
                 3.557250387126167923e-01,
                 3.798882550532960423e-01,
                 3.206955701106445344e-01,
                 2.600880460776140990e-01,
                 2.245379618606005157e-01],
         'y': [1.397354195522357567e-01,
                 1.001406990711011247e-01,
                 5.173231204524778720e-02,
                 3.445520251689743879e-02,
                 3.801366557283047953e-02,
                 2.856782588754304408e-02,
                 2.036328213585812327e-02,
                 1.566228252276009869e-02]})

グラフに必要なのは、

df.plot()

とするだけでも表示されちゃいます。

素晴らしい!!
でも、これはpandasがplotを協力してくれています。

次の展開の準備として、「matplotlib」を直接使って同じグラフを4つ表示してみましょう。
(散布図だと向きが逆になります。)

fig = plt.figure(figsize=(15,6))
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2, sharey=ax1)
ax3 = fig.add_subplot(2, 2, 3, sharey=ax1)
ax4 = fig.add_subplot(2, 2, 4, sharey=ax1)
ax1.plot(df['x'], df['y'], "ro")
ax2.plot(df['x'], df['y'], "ro")
ax3.plot(df['x'], df['y'], "ro")
ax4.plot(df['x'], df['y'], "ro")
ax1.set_title("ols fit")
ax2.set_title("Linear exp fit")
ax3.set_title("log fit")
ax4.set_title("parabora fit")
ax1.grid()
ax2.grid()
ax3.grid()
ax4.grid()

こんな感じになりました。

少し説明しますと、

  • 「figure」 はキャンバス
  • 「axes」 はグラフ
  • 「sharey」 は、グラフ間で縦軸の共有
  • 「plot」は、グラフの描画
    • 「matplotlib」の場合は、「x」「y」を分けて渡します。
  • 「set_title」は、そのまま
  • 「grid」は、補助線の追加

こんな感じに理解しました。
最初はfigure axes axisなどを混同して、混在して、混乱しました。
こちらのサイトを参考にさせて頂いて、自分でも整理しました。
http://bicycle1885.hatenablog.com/entry/2014/02/14/023734

また、コードの書き方にも

  • 対話型
  • オブジェクト型

の2つの方法があり、余計にややこしいです。
中々思った通りのグラフにならなくて、ハマりました。

自分は、オブジェクト型の方が分かりやすかったので、こちらでいきますが
対話型も分かっていた方が、他のサイトを見た時に
あーこれは、対話型でこう書いてるのでオジェクト型ではこうやればいいよね。
という事が出来るようになるのでいいと思います。

ところで、何故同じグラフを4つ作ったのか?
それは他でもなく、エクセルをぼ・・・
この4つの散布図の中に、線形近似、指数近似、対数近似、多項式近似の曲線を引いて分析を行っていきます。

それでは、次回は線形近似から行きたいと思います。