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
ocircle
vtriangle down
^triangle up
<triangle left
>triangle right
'1'tri down
'2'tri up
'3'tri left
'4'tri right
'8'octagon
ssquare
p (小文字)pentagon
P (大文字)plus (filled)
*star
hhexagon1
Hhexagon2
+plus
x (小文字)x
X (大文字)x (filled)
DDiamond
dthin diamond
|vline
_ (下線)hline
0tick left 左側
1tick right 右側
2tick up
3tick down
4caret left
5caret right
6caret up
7caret down
8caret left (centered at base)
9caret right (centered at base)
10caret up (centered at base)
11caret 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()

以上、ここではグラフのマーカーの指定方法と、マーカーの種類を紹介しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門