Matplotlib.pyplotのplotの全引数を解説

概要

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()

f:id:Rosyuku:20160807221025p:plain

#xとyは指定する
plt.plot(x, y)

f:id:Rosyuku:20160807221321p:plain

各種引数を指定した場合の結果

alpha

グラフの透過度を指定するときに使う。デフォルトは1.0(透過なし)。

#50%を指定
plt.plot(x, y, alpha=0.5)

f:id:Rosyuku:20160807221523p:plain

antialiased or aa

アンチエイリアス(見た目がギザつかなくなるように、見栄えをよくするデジタル処理)を指定するときに使う。デフォルトはTrue(アンチエイリアスをする)。

plt.plot(x, y, antialiased=False)

f:id:Rosyuku:20160807223654p:plain

color or c

グラフの色を指定するときに使う。colorの値はcolors — Matplotlib 1.5.1 documentation参照。

#赤を指定
plt.plot(x, y, color='r')

f:id:Rosyuku:20160807225203p:plain

label

凡例を付けたいときに使う。表示にはplt.legend()が合わせて必要なので注意。

#testと凡例を付ける
plt.plot(x, y, label='test')
plt.legend()

f:id:Rosyuku:20160807230906p:plain

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()

f:id:Rosyuku:20160807231255p:plain

linewidth or lw

線の太さを指定するときに使う。デフォルトは1.0。

plt.plot(x, y, lw=10)

f:id:Rosyuku:20160807231526p:plain

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()

f:id:Rosyuku:20160807231818p:plain

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()

f:id:Rosyuku:20160807232032p:plain

dashes

ダッシュ線の間隔を細かく指定したいときに使う。

plt.plot(x, y, dashes=[1,2,4,8,4,2])

f:id:Rosyuku:20160807232359p:plain

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()

f:id:Rosyuku:20160807233406p:plain

markeredgecolor or mec

マーカーを表示したとき、マーカーの淵の色を指定するパラメータ。

#エッジの色を赤に指定
plt.plot(x, y, marker='o', mec='r')

f:id:Rosyuku:20160807233643p:plain

markeredgewidth or mew

マーカーを表示したとき、マーカーの淵の幅を指定するパラメータ。

#エッジの色を赤に指定し、幅を3ピクセルに指定
plt.plot(x, y, marker='o', mec='r', mew=3)

f:id:Rosyuku:20160807233756p:plain

markerfacecolor or mfc

マーカーを表示したとき、マーカーの内部の色を指定するパラメータ。

#マーカの色を赤に指定
plt.plot(x, y, marker='o', mfc='r')

f:id:Rosyuku:20160807233932p:plain

markersize or ms

マーカーを表示したとき、マーカーのサイズを指定するパラメータ。

plt.plot(x, y, marker='o', ms=3)

f:id:Rosyuku:20160807234034p:plain

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()

f:id:Rosyuku:20160807234620p:plain

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()

f:id:Rosyuku:20160808000054p:plain

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()

f:id:Rosyuku:20160808000048p:plain

visible

グラフの表示/非常時を指定するときに使う。デフォルトはTrue(表示)。軸の設定だけを指定したいときがあれば使えるかも。

plt.plot(x, y, visible=False)

f:id:Rosyuku:20160808000101p:plain

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といった引数はよく使いそうです。


コメントを残す

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

CAPTCHA