概要
Pythonでグラフを描くお供であるmatplotlib.pyplotのplotメソッドについて、全引数の効果を検証しました。データはirisを使っています。
import pandas as pd import numpy as np import matplotlib.pyplot as plt if __name__ == "__main__": #元データ df = pd.read_csv('iris.csv', index_col=0) #x,yにデータを割り振る x = np.array(df.index) y = np.array(df[df.colulmns[0]])
どんな引数があるのか?
matplotlibのマニュアルに引数の一覧と思われるものが記載されています。数えると40個もあります。
alpha | animated | antialiased | aa |
clip_box | clip_on | clip_path | color |
c | contains | dash_capstyle | dash_joinstyle |
dashes | data | figure | label |
linestyle | ls | linewidth | lw |
lod | marker | markeredgecolor | mec |
markeredgewidth | mew | markerfacecolor | mfc |
markersize | ms | markevery | picker |
pickradius | solid_capstyle | solid_joinstyle | transform |
visible | xdata | ydata | zorder |
デフォルトの結果
何も引数をつけずに、デフォルト設定でplotすると、グラフの中身は何もありません(データを渡していないので当然ですが)。このままだと引数の効果が分かりにくいので、xとyだけは指定しておくようにします。
#引数なしの場合の結果 plt.plot()
#xとyは指定する plt.plot(x, y)
各種引数を指定した場合の結果
alpha
グラフの透過度を指定するときに使う。デフォルトは1.0(透過なし)。
#50%を指定 plt.plot(x, y, alpha=0.5)
antialiased or aa
アンチエイリアス(見た目がギザつかなくなるように、見栄えをよくするデジタル処理)を指定するときに使う。デフォルトはTrue(アンチエイリアスをする)。
plt.plot(x, y, antialiased=False)
color or c
グラフの色を指定するときに使う。colorの値はcolors — Matplotlib 1.5.1 documentation参照。
#赤を指定 plt.plot(x, y, color='r')
label
凡例を付けたいときに使う。表示にはplt.legend()が合わせて必要なので注意。
#testと凡例を付ける plt.plot(x, y, label='test') plt.legend()
linestyle or ls
線の種類を指定するときに使う。デフォルトは’-‘。
plt.plot(x, y*2.0, ls='-', label='-') plt.plot(x, y*1.6, ls='--', label='--') plt.plot(x, y*1.2, ls='-.', label='-.') plt.plot(x, y*0.8, ls=':', label=':') plt.plot(x, y*0.4, ls='steps', label='steps') plt.legend()
linewidth or lw
線の太さを指定するときに使う。デフォルトは1.0。
plt.plot(x, y, lw=10)
dash_capstyle
ダッシュ線の書式を指定するときに使う。デフォルトは’butt’。細かすぎて伝わらない可能性の高い引数(その1)。
plt.plot(x, y, ls='--', lw=5, dash_capstyle='butt', label='butt') plt.plot(x, y*0.6, ls='--', lw=5, dash_capstyle='round', label='round') plt.plot(x, y*0.3, ls='--', lw=5, dash_capstyle='projecting', label='projecting') plt.legend()
dash_joinstyle
ダッシュ線の結合部分の書式を指定するときに使う。デフォルトは’miter’。細かすぎて伝わらない可能性の高い引数(その2)。
plt.plot(x, y, ls='--', lw=5, dash_joinstyle='miter', label='miter') plt.plot(x, y*0.6, ls='--', lw=5, dash_joinstyle='round', label='round') plt.plot(x, y*0.3, ls='--', lw=5, dash_joinstyle='bevel', label='bevel') plt.legend()
dashes
ダッシュ線の間隔を細かく指定したいときに使う。
plt.plot(x, y, dashes=[1,2,4,8,4,2])
marker
マーカー形状を指定するときに使う。
plt.plot(x, y*2.8, marker='+', label='+') plt.plot(x, y*2.4, marker=',', label=',') plt.plot(x, y*2.0, marker='.', label='.') plt.plot(x, y*1.6, marker='1', label='1') plt.plot(x, y*1.2, marker='2', label='2') plt.plot(x, y*0.8, marker='3', label='3') plt.plot(x, y*0.4, marker='4', label='4') plt.legend()
markeredgecolor or mec
マーカーを表示したとき、マーカーの淵の色を指定するパラメータ。
#エッジの色を赤に指定 plt.plot(x, y, marker='o', mec='r')
markeredgewidth or mew
マーカーを表示したとき、マーカーの淵の幅を指定するパラメータ。
#エッジの色を赤に指定し、幅を3ピクセルに指定 plt.plot(x, y, marker='o', mec='r', mew=3)
markerfacecolor or mfc
マーカーを表示したとき、マーカーの内部の色を指定するパラメータ。
#マーカの色を赤に指定 plt.plot(x, y, marker='o', mfc='r')
markersize or ms
マーカーを表示したとき、マーカーのサイズを指定するパラメータ。
plt.plot(x, y, marker='o', ms=3)
markevery
マーカーを表示したとき、マーカの表示頻度を指定するパラメータ。デフォルトはNone(全て)。データ点数が多く、処理が重い場合などに重宝するかもしれません。
#全て表示 plt.plot(x, y, marker='o', markevery=None, label='None') #5つ置きに表示 plt.plot(x, y*0.6, marker='o', markevery=5, label='integer') #10番目から3つ置きに表示 plt.plot(x, y*0.3, marker='o', markevery=(10, 3), label='(startind, stride)') plt.legend()
solid_capstyle
線の書式を指定するときに使う。デフォルトは’butt’。細かすぎて伝わらない可能性の高い引数(その3)。
plt.plot(x, y, ls='-', lw=5, solid_capstyle='butt', label='butt') plt.plot(x, y*0.6, ls='-', lw=5, solid_capstyle='round', label='round') plt.plot(x, y*0.3, ls='-', lw=5, solid_capstyle='projecting', label='projecting') plt.legend()
solid_joinstyle
線の結合部分の書式を指定するときに使う。デフォルトは’miter’。細かすぎて伝わらない可能性の高い引数(その4)。
plt.plot(x, y, ls='-', lw=5, solid_joinstyle='miter', label='miter') plt.plot(x, y*0.6, ls='-', lw=5, solid_joinstyle='round', label='round') plt.plot(x, y*0.3, ls='-', lw=5, solid_joinstyle='bevel', label='bevel') plt.legend()
visible
グラフの表示/非常時を指定するときに使う。デフォルトはTrue(表示)。軸の設定だけを指定したいときがあれば使えるかも。
plt.plot(x, y, visible=False)
animation
アニメーションを作りたいときに使う。デフォルトはFalse。単独で指定しても効果はなかったので省略。
figure
figureのインスタンスが複数ある時など、どのfigureに割り当てるかを指定する。
lod
指定すると変数エラー。存在しない模様。
clip_box, clip_on, clip_path
matplotlib.transform.Bbox instanceを使いたいときに使う変数。詳細不明。
contains
調査中。
data, xdata, ydata
言葉通りの意味の引数と思われるが、指定してもグラフ表示されず。詳細不明。
transform
matplotlib.transform.Transform instanceを使いたいときに使う変数。詳細不明。
picker, pickradius
クリック動作で選択した点を取得するときに使う。単独で指定しても効果はなかったので省略。
まとめ
pltで指定できる引数は、グラフの色や形状といった「グラフの書式」を指定するもののようです。alphaやcolorやmarkerやlwといった引数はよく使いそうです。
おぉ、助かります!!
40個もあったんですね!!
Pythonはライブラリがすぐに変わっていくので、今はもっと増えているかもです!