1. ホーム
  2. パイソン

[解決済み】Matplotlib で線上の個々の点にマーカーを設定する

2022-04-21 10:26:11

質問

Matplotlibを使って、図に線を引いています。そこで、線上の個々の点に対して、スタイル、特にマーカーを設定したいと思います。どうすればよいのでしょうか?

私の質問を明確にするために、私は線上のすべてのマーカーではなく、線上の個々のマーカーに対してスタイルを設定できるようにしたいのです。

どのように解決するのですか?

キーワードargsを指定する linestyle および/または marker への呼び出しで plot .

例えば、破線と青丸マーカーを使用した場合。

plt.plot(range(10), linestyle='--', marker='o', color='b', label='line with marker')
plt.legend()

同じことをするためのショートカット・コールです。

plt.plot(range(10), '--bo', label='line with marker')
plt.legend()

可能なラインとマーカのスタイルの一覧です。

================    ===============================
character           description
================    ===============================
   -                solid line style
   --               dashed line style
   -.               dash-dot line style
   :                dotted line style
   .                point marker
   ,                pixel marker
   o                circle marker
   v                triangle_down marker
   ^                triangle_up marker
   <                triangle_left marker
   >                triangle_right marker
   1                tri_down marker
   2                tri_up marker
   3                tri_left marker
   4                tri_right marker
   s                square marker
   p                pentagon marker
   *                star marker
   h                hexagon1 marker
   H                hexagon2 marker
   +                plus marker
   x                x marker
   D                diamond marker
   d                thin_diamond marker
   |                vline marker
   _                hline marker
================    ===============================


を編集します。 コメントで要望のあった、ポイントの任意の部分集合をマークする例で。

import numpy as np
import matplotlib.pyplot as plt

xs = np.linspace(-np.pi, np.pi, 30)
ys = np.sin(xs)
markers_on = [12, 17, 18, 19]
plt.plot(xs, ys, '-gD', markevery=markers_on, label='line with select markers')
plt.legend()
plt.show()

この最後の例では markevery のマージにより、1.4 以降で可能となりました。 この機能ブランチ . matplotlib の古いバージョンで行き詰っている場合でも、折れ線グラフに散布図を重ねることで、結果を得ることができます。 詳細は 編集履歴 をご覧ください。