目的
Kaggleのサイトで、とある方のソースコードを参照し、それの見方を私なりに理解しようと思いまして、ここに記録致します。
環境はPython 3、matplotlibとpandasを利用しています。
参照したソースコード
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("./creditcard.csv")
f, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(12,4))
bins = 50
ax1.hist(df.Time[df.Class == 1], bins = bins)
ax1.set_title('Fraud')
ax2.hist(df.Time[df.Class == 0], bins = bins)
ax2.set_title('Normal')
plt.xlabel('Time (in Seconds)')
plt.ylabel('Number of Transactions')
plt.show()
matplotlibとは
import matplotlib.pyplot as plt
Matplotlibは、プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。Wikipediaを参照
Python用のグラフ描画ライブラリと覚えておきます。マットプロットリブって読むんですかね。
pandasとは
import pandas as pd
Pandasは、プログラミング言語Pythonにおいて、データ解析を支援する機能を提供するライブラリである。特に、数表および時系列データを操作するためのデータ構造と演算を提供する。PandasはBSDライセンスのもとで提供されている。
Wikipediaを参照
Python要のデータ解析用のライブラリとのことです。数表、時系列データの操作を提供しているそうです。
パンダスと読むんでしょうか。パンズなのでしょうか。よく分からないですね。
subplotsとは
f, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(12,4))
のところの、2と1はrowとcolumnとのことです。つまり、2行、1列ということのようです。http://matplotlib.org/api/pyplot_api.htmlより
f, (ax1, ax2) というのがよく分かりませんが、上記サイトにこれに近いSampleがあるので、こういう書き方なんだろな、程度に理解しておきます。
rowが2でcolumnが1なので、2つのグラフということでax1とax2ということなんだろな、と思いますが。
fは何を意味しているのかいまいちよく分かりません。y軸(縦軸)のことで、どんな文字列でも良い変数という意味でしょうか。
sharexとは
f, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(12,4))
のところのsharex=Trueのことです。
複数のグラフを表示するときに、X軸の設定をすべてのグラフで設定するのが面倒な時にShareが使えます。subplotsに引数でsharex=Trueとするだけです。[Python]Matplotlibで複数のグラフを描画する方法より
figsizeとは
f, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(12,4))
のところのfigsize=(12,4)のことです。
インチで、デフォルトでは(8, 6)とのことです。グラフの画像サイズのことのようです。
西尾泰和のはてなダイアリー
histとは
ax1.hist(df.Time[df.Class == 1], bins = bins)
のところのhistですが、これでヒストグラムを作ってくれるようです。hist(データ、bins=ビン数)のように指定するそうです。
[Python]Matplotlibで複数のグラフを描画する方法より
ヒストグラムと棒グラフの違いがいまいち分かってませんでしたがこちらのサイトを見て理解しました。
棒グラフとヒストグラムの違い
面積で度数を表すのがヒストグラム、そうでないのが棒グラフのようですね。
binとは
bins = 50
でbinsが50で定義されていますが、つまりグラフでいうところのX軸の数のことのようです。
ヒストグラムは、各々が互いに素である区間・階級(カテゴリ、これをビン (bins) という。 Wikipediaより