メインコンテンツへスキップ
  1. 授業・研究ノート/
  2. Python/
  3. Matplotlib/

ax.plot()の基本

目次
Matplotlib - この記事は連載の一部です
パート 2: この記事

このページでは省略しているが, よく使う設定と保存 に書かれている設定とnumpyのインポートを用いている.

ax.plot()の構文
#

ax.plot() は多機能なので色々な引数があるが,よく使用するものは下記.

ax.plot(
    x,
    y,
    color='red',
    marker='o',
    linestyle='-',
    linewidth=2,
    markersize=10,
    markeredgecolor='black',
    label='label',
)
  • x, y は座標.list や ndarray などの ArrayLike

color, marker, linestyleはよく省略されて

ax.plot(x, y, 'ro-')

のように書くことも多い.これは下記の意味.

ax.plot(x, y, color='red', marker='o', linestyle='-')

linestyle
#

カスタマイズすればより詳細な調整も可能ではあるが,基本的には以下の4種類.

線種
'-' 実線
'--' 破線
':' 点線
'-.' 一点鎖線

また,linestyle=''linestyle='none'のように書けば線なしにできる.

# ---------- x, y
x = np.array([0, 1, 2, 3])
y = np.array([1, 2, 3, 4])

# ---------- plot
fig, ax = plt.subplots(1, 1)
ax.plot(x, y,     linestyle='-',  marker='o', markeredgecolor='black', label='solid')
ax.plot(x, y + 1, linestyle='--', marker='o', markeredgecolor='black', label='dashed')
ax.plot(x, y + 2, linestyle=':',  marker='o', markeredgecolor='black', label='dotted')
ax.plot(x, y + 3, linestyle='-.', marker='o', markeredgecolor='black', label='dashdot')
ax.set_xlabel('test $x$')
ax.set_ylabel('test $y$')
ax.legend()

marker
#

Maplotlib公式ドキュメント に使用できるマーカーが一覧がある. よく使用されるものを取り上げたのが下の表.

マーカー
'o'
's' 四角
'^' 上向き三角
'D' ひし形

マーカーの種類の他にも関連オプションがある.'none'にすると塗りつぶしや枠線を無しにできる.'none'は小文字で特殊なので注意.color で設定すると,線やマーカーなどまとめて色が設定されるが,markerfacecolormarkeredgecolor がマーカーでは優先されるので個別に設定できる.

オプション 説明
markersize マーカーの大きさ
markerfacecolor マーカー内部の色
markeredgecolor マーカーの枠線の色
markeredgewidth マーカーの枠線の太さ
alpha 透明度

次の図はマーカーの一例

カラーサイクル
#

デフォルトのカラーサイクルは10色. 何も色を指定しなければ順番に色が変わって10色で一周する.

# ---------- x, y
x = np.array([0, 1, 2, 3])
y = np.array([1, 2, 3, 4])

# ---------- plot
fig, ax = plt.subplots(1, 1)
for i in range(12):
    ax.plot(x, y + i)
ax.set_xlabel('test $x$')
ax.set_ylabel('test $y$')

カラーサイクルの n 番目の色を使いたい場合,例えば0番目なら'C0'で使用できる.

# ---------- x, y
x = np.array([0, 1, 2, 3])
y = np.array([1, 2, 3, 4])

# ---------- plot
fig, ax = plt.subplots(1, 1)
for i in range(12):
    ax.plot(x, y + i, color='C0')
ax.set_xlabel('test $x$')
ax.set_ylabel('test $y$')
Matplotlib - この記事は連載の一部です
パート 2: この記事