この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: マーカー
SEOタイトル: Matplotlib 線グラフ マーカー完全ガイド|種類・サイズ・色・format string

この記事の要点
  • Matplotlib のマーカーplt.plot(x, y, marker='o') で指定。線グラフ上で各データ点を可視化するための記号
  • 主要記号: o ○ / . 小点 / x × / + + / * ★ / s 四角 / d 菱形 / ^ 三角 など 20 種以上
  • サイズは markersize (=ms)、塗り色 markerfacecolor (=mfc)、縁色 markeredgecolor (=mec)、縁太さ markeredgewidth (=mew)
  • markevery=N で N 点ごとにマーカーを描画 (密データの間引き表示)
  • フォーマット文字列 'o-r' は「赤い実線 + ○マーカー」、'^--b' は「青い破線 + △マーカー」のように短く書ける

マーカーとは

マーカーは、Matplotlib の線グラフや散布図で個々のデータ点に付ける記号です。線だけだと点と点の境目が分かりませんが、マーカーを付けると「ここに測定点がある」が一目で分かります。

Matplotlib 線グラフ + マーカー

最小コード

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# 線 + ○マーカー
plt.plot(x, y, marker='o')
plt.title('Line + Marker')
plt.show()

マーカー記号一覧

記号意味記号意味
'.'小さい点'o'○ 円
','1 ピクセル点'x'× バツ
'+'+ プラス'*'★ 星
's'□ 四角'd'細菱形
'D'太菱形'p'五角形
'h'六角形 (横)'H'六角形 (縦)
'^'△ 上三角'v'▽ 下三角
'<'◁ 左三角'>'▷ 右三角
'1' '2' '3' '4'細い三角 (4 向き)'|' / '_'縦線 / 横線
'X'塗り×'P'塗り+

マーカーのサイズ・色・縁

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

plt.plot(x, y,
         marker='o',
         markersize=12,           # ms=12 でも可
         markerfacecolor='gold',  # mfc 塗り色
         markeredgecolor='red',   # mec 縁色
         markeredgewidth=2,       # mew 縁太さ
         linestyle='--',
         color='steelblue',
         linewidth=2)
plt.title('Customized markers')
plt.show()
正式名省略形意味
markersizemsマーカーの大きさ (ポイント)
markerfacecolormfcマーカー内側 (塗り) の色
markerfacecoloraltmfcaltマーカーの代替塗り色 (半塗りマーカーで使用)
markeredgecolormecマーカーの縁の色
markeredgewidthmewマーカーの縁の太さ
fillstyle'full' 塗り / 'none' 縁のみ / 'top' 上半分塗り など

フォーマット文字列 (簡略記法)

plt.plot(x, y, 'fmt') の 'fmt' は マーカー + 線種 + 色の組み合わせです。順序は自由ですが衝突を避けるため一般に上記順序が読みやすい。

import matplotlib.pyplot as plt

x = range(10)

plt.plot(x, [i      for i in x], 'o-r',  label='o + 実線 + 赤')
plt.plot(x, [i + 5  for i in x], 's--b', label='s + 破線 + 青')
plt.plot(x, [i + 10 for i in x], '^:.g', label='^ + 点線 + 緑')
plt.plot(x, [i + 15 for i in x], '*-.m', label='* + 一点鎖 + 紫')
plt.plot(x, [i + 20 for i in x], 'D-k',  label='D + 実線 + 黒')
plt.legend()
plt.show()

線種 (linestyle)

fmt正式名説明
'-''solid'実線
'--''dashed'破線
':''dotted'点線
'-.''dashdot'一点鎖線
'''None'線なし (マーカーのみ)

色 (color)

fmt意味fmt意味
'b'blue 青'g'green 緑
'r'red 赤'c'cyan 水色
'm'magenta 紫'y'yellow 黄
'k'black 黒'w'white 白

マーカーの間引き: markevery

1000 点のデータに全部マーカーを打つと潰れて見えません。markevery=20 で 20 点に 1 回だけマーカーを描けます。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 4 * np.pi, 200)
y = np.sin(x)

# 線は全点、マーカーは 10 点に 1 回
plt.plot(x, y, marker='o', markevery=10, markersize=8)
plt.title('markevery=10')
plt.show()

# 比率で指定 (0.05 = 5% 間隔)
plt.plot(x, y, marker='s', markevery=0.05)
plt.show()

# 特定位置だけ
plt.plot(x, y, marker='*', markevery=[0, 50, 100, 150, 199], markersize=15)
plt.show()

マーカーだけ描く (線なし)

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

# 方法 A: linestyle='None'
plt.plot(x, y, marker='o', linestyle='None', markersize=10)

# 方法 B: fmt の線部分を省く
plt.plot(x, y, 'o', markersize=10)

# 方法 C: scatter を使う (より柔軟)
plt.scatter(x, y, s=80)

plt.show()

縁だけマーカー (中空)

import matplotlib.pyplot as plt

x = range(5)

# A. fillstyle='none'
plt.plot(x, [i for i in x], marker='o', fillstyle='none',
         markersize=15, markeredgewidth=2)

# B. mfc を背景色や 'none' に
plt.plot(x, [i + 1 for i in x], marker='s',
         markerfacecolor='none', markeredgecolor='red', markersize=15)
plt.show()

半塗りマーカー (top / bottom / left / right)

import matplotlib.pyplot as plt

styles = ['full', 'left', 'right', 'top', 'bottom', 'none']
for i, s in enumerate(styles):
    plt.plot(i, 1, marker='o', markersize=30, fillstyle=s,
             markerfacecolor='tomato', markerfacecoloralt='royalblue',
             markeredgecolor='black')
    plt.text(i, 0.5, s, ha='center')
plt.xlim(-1, len(styles))
plt.ylim(0, 2)
plt.axis('off')
plt.show()

FAQ

Q: marker='o'marker='.' はどう違う?
A: 'o'枠線付きの円でデフォルトサイズが大きめ。'.'細かい点で密データの散布図向け。

Q: マーカーが小さすぎ / 大きすぎ
A: markersize=N で調整。デフォルトは 6。論文向けに大きめにするなら 10〜15 が読みやすいです。

Q: マーカー色を点ごとに変えたい
A: plot ではマーカー色は 1 系列で 1 色。個別色は scatterc= 引数で指定します。

Q: 文字をマーカー代わりに使いたい
A: marker=r'$\\heartsuit$' のように TeX 数式や任意の Unicode 文字を渡せます。例えば marker=r'$A$' で文字 A をマーカーに。

Q: 凡例のマーカーが小さすぎる
A: plt.legend(markerscale=2) で凡例内マーカーだけ拡大できます。