Pythonでのプロットと可視化(matplotlib編) 〜 3−1.図の設定(余白、色、マーカー、線種)

前回「Pythonでのプロットと可視化(matplotlib編) 〜 2.図とサブプロット」の続き。

◎サブプロットの周りの余白を調整する

・スペースの調節を最も簡単に行うには、subplots_adjustを使う

 subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)

・スペースは全て、プロットの高さや幅に対する相対的な比率で指定する。

例えば、全てのスペースをゼロにする簡単な例は次のコード。

#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt

### 1.複数サブプロットを作成する(新規にウィンドウが作成される)
fig, axes = plt.subplots(2, 3, sharex=True, sharey=True)
for i in range(2):
    for j in range(3):
        axes[i,j].hist(np.random.randn(500), bins=50, color='k', alpha=0.5)
### 2.スペースをゼロにする
plt.subplots_adjust(wspace=0, hspace=0)

実行結果は次図。

◎plot関数で色、マーカー、線種を指定する
まず最初に、matplotlibのplot関数はX座標とY座標の配列を引数として取る
色、マーカー、線種を指定するにはplot関数のオプションで指定する。

例えば、次のコードで破線グラフを描ける。

#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
x = np.arange(start=0, stop=100, step=5, dtype=None)
y = np.random.randn(len(x))

plt.plot(x, y, 'g--')

実行結果は次図。

'g--'といったオプション指定方法は簡便な方法で、次のように明示的に指定出来る。
※)線種の完全な一覧は、plotのdocstringで参照できる。

「plt.plot(x, y, 'g--')」を明示的に指定すると、「plt.plot(x, y, linestyle='--', color='g')」

データポイントを目立たせるためにマーカーを付けるにはmarkerオプションを使用する。

#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
x = np.arange(start=0, stop=100, step=5, dtype=None)
y = np.random.randn(len(x))

#plt.plot(x, y, 'g--')

plt.plot(x, np.random.randn(len(x)).cumsum(), linestyle='--', color='g', marker='o')

実行結果は次図。

グラフの描画形式を指定するには「drawstyle」オプションを使用する。
次は、直線形式のグラフを線種を破線で描き、階段状形式のグラフを実線で描く例。

#coding:utf-8
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
x = np.arange(start=0, stop=100, step=5, dtype=None)
y = np.random.randn(len(x)).cumsum()

plt.plot(x, y, linestyle='--', color='g', marker='o',                           label='Default')
plt.plot(x, y, linestyle='-' , color='g', marker='o', drawstyle='steps-post', label='steps-post')
plt.legend(loc='best') #凡例を描画領域に付ける

結果は次図。
凡例をlabelオプションで指定し、plt.legendを実行して描画領域につけている。
凡例の位置はlegend関数のlocオプションで指定(左上ならloc="upper left")出来るが、今回はbestを指定。

以上。

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理