Matplotlib のグラフのマーカーを指定する方法
ここでは Matplotlib を用いて描いたグラフに、マーカーを描画する方法について説明します。
Matplotlib で描画したグラフにマーカーを指定する方法
Matplotlib でグラフを書く基本的な方法については「Matplotlib で基本的なグラフを描く方法」をみてください。
グラフを書く際には Axes オブジェクトの plot() 関数を呼びます。マーカーを指定する際には、その際、marker オプションにマーカーの種類を指定します。 マーカーの種類には、四角を書くには s、円を書くには oなどのように決められた種類があります。詳しくは下の「Matplotlib のグラフのマーカー一覧」に一覧を記載しています。
さらにマーカーのサイズを指定するには、同じくplot()関数のmarkersizeオプションに数値を指定します。
上記のグラフを出力するコードは、次のようになります。
import matplotlib.pyplot as plt
x = [0, 1, 2, 3, 4, 5]
y = [1, 2, 4, 3, 5, 10]
fig, ax = plt.subplots()
ax.plot(x, y, marker='s', markersize=8)
ax.grid()
ax.set(xlabel='x', ylabel='y', title='Hello!')
plt.show()
ポイントは7行目です。markerオプションに's'が指定しているので、四角のマーカーが表示されています。 また、マーカーの大きさは markersizeオプションで8が指定されています。
Matplotlib のグラフのマーカー一覧
Matplotlib で使える基本的なマーカーは次のようなものがあります。
凡例 | marker の値 | 説明 |
---|---|---|
. | 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 | |
P (大文字) | plus (filled) | |
* | star | |
h | hexagon1 | |
H | hexagon2 | |
+ | plus | |
x (小文字) | x | |
X (大文字) | x (filled) | |
D | Diamond | |
d | thin diamond | |
| | vline | |
_ (下線) | hline | |
0 | tick left 左側 | |
1 | tick right 右側 | |
2 | tick up | |
3 | tick down | |
4 | caret left | |
5 | caret right | |
6 | caret up | |
7 | caret down | |
8 | caret left (centered at base) | |
9 | caret right (centered at base) | |
10 | caret up (centered at base) | |
11 | caret down (centered at base) | |
none | マーカーなし | |
$foo$ | $ で囲んだ任意の文字 |
試しに、これらを表示すると次のようになります。
ちなみに、この図を表示したコードは次のようになります。
import matplotlib.pyplot as plt
import numpy as np
def draw_lines(ax, markers):
x = np.linspace(0, 5, 6)
y = 0.5 * x
d = len(markers) * 0.5
for m in reversed(markers):
label = '[' + str(m) + ']'
ax.plot(x, y + d, marker=m, markersize=16, label=label)
d -= 0.5
markers1 = [
'.', ',', 'o', 'v', '^',
'<', '>', '1', '2', '3',
'4', '8', 's', 'p', 'P',
'*', 'h', 'H', '+', 'x'
]
markers2 = [
'X', 'D', 'd', '|', '_',
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
'none', '$foo$'
]
fig, axs = plt.subplots(1, 2)
fig.suptitle('Hello Markers')
draw_lines(axs[0], markers1)
draw_lines(axs[1], markers2)
axs[0].legend(fontsize=16, framealpha=1, loc='center right')
axs[1].legend(fontsize=16, framealpha=1, loc='center left')
plt.show()
以上、ここではグラフのマーカーの指定方法と、マーカーの種類を紹介しました。