matplotlib でグラフを描く際に、marker が指定できます。marker には ● とか ▲ など、いろいろな形が用意されており、plot や scatter メソッドの引数として指定します。
たとえば
1 |
plt.plot(x, y, marker='o') |
とすれば、● が marker になります。
現在、35種類のマーカーが使えるようです。
詳しくは matplotlib のサイトで
35種類を、ひととおり試してみます。
- 目次 -
- 描画プログラム
- サイズは markersize で指定
- 結果
- point、pixel、circle
- triangle_down、triangle_up、triangle_left、triangle_right
- tri_down、tri_up、tri_left、tri_right
- octagon、square、pentagon、star、hexagon1、hexagon2
- plus、x
- diamond、thin_diamond
- vline、hline
- tickleft、tickright、tickup、tickdown
- caretleft、caretright、caretup、caretdown
- nothing
- 任意の文字列をマーカーにする
スポンサーリンク
描画プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import numpy as np import matplotlib.pyplot as plt import math from collections import OrderedDict from matplotlib.markers import TICKLEFT, TICKRIGHT, TICKUP, TICKDOWN, CARETLEFT, CARETRIGHT, CARETUP, CARETDOWN x = np.linspace(0, 2.0 * math.pi, 20) y = np.sin(x) markers = OrderedDict([ ('.', 'point'), (',', 'pixel'), ('o', 'circle'), ('v', 'triangle_down'), ('^', 'triangle_up'), ('<', 'triangle_left'), ('>', 'triangle_right'), ('1', 'tri_down'), ('2', 'tri_up'), ('3', 'tri_left'), ('4', 'tri_right'), ('8', 'octagon'), ('s', 'square'), ('p', 'pentagon'), ('*', 'star'), ('h', 'hexagon1'), ('H', 'hexagon2'), ('+', 'plus'), ('x', 'x'), ('D', 'diamond'), ('d', 'thin_diamond'), ('|', 'vline'), ('_', 'hline'), (TICKLEFT, 'tickleft'), (TICKRIGHT, 'tickright'), (TICKUP, 'tickup'), (TICKDOWN, 'tickdown'), (CARETLEFT, 'caretleft'), (CARETRIGHT, 'caretright'), (CARETUP, 'caretup'), (CARETDOWN, 'caretdown'), ('None', 'nothing'), (None, 'nothing'), (' ', 'nothing'), ('', 'nothing') ]) plt.figure(figsize=(9, len(markers)*1.8)) i = 1 for m, desc in markers.items(): plt.subplot(math.ceil(len(markers)/2.0), 2, i) plt.plot(x, y, marker=m, markersize=10) if isinstance(m, str): plt.title('marker=\'' + m + '\'' + ' (' + desc + ')') else: plt.title('marker=' + str(m) + ' (' + desc + ')') plt.xlim(x.min(), x.max()) i += 1 plt.tight_layout() # タイトルと目盛が重ならないようにする |
サイズは markersize で指定
マーカーの大きさはmarkersizeで指定します。
上の描画プログラムでは、表示が見やすいようにmarkersize=10と指定しています。
結果
point、pixel、circle
marker は、それぞれ .,oです。

triangle_down、triangle_up、triangle_left、triangle_right
marker は、それぞれ v^<>です。

tri_down、tri_up、tri_left、tri_right
marker は、それぞれ文字型の 1234です。

octagon、square、pentagon、star、hexagon1、hexagon2
marker は、それぞれ文字型の 8sp*hHです。

plus、x
marker は、それぞれ +xです。

diamond、thin_diamond
marker は、それぞれ Ddです。

vline、hline
marker は、それぞれ |_です。

tickleft、tickright、tickup、tickdown
marker は、それぞれ数値型の 0123です。

caretleft、caretright、caretup、caretdown
marker は、それぞれ数値型の 4567です。

nothing
marker は、それぞれ‘None’None です。

任意の文字列をマーカーにする
marker=’$…$’の書式で文字列を指定すると、その文字列がマーカーになります。
たとえば
1 |
plt.plot(x, y, marker='$ABC$', markersize=30) |
とすると

となります。
匿名 says:
marker機能の使い方がわかりました。ありがとうございます。