少し検索すれば、カスタム マーカーの作成方法に関するいくつかのリンクが見つかるはずです。あなたの質問に答えるために私が思いついた最善の方法は、Pathオブジェクトをマーカーとして使用することです。したがって、目的のパスを作成する関数を作成できます (クロスを書くのが面倒だったので、より単純な長方形を使用しました)。
def getCustomMarker():
verts = [(-1, -1), # left, bottom
(-1, 1), # left, top
(1, 1), # right, top
(1, -1), # right, bottom
(-1, -1)] # ignored
codes = [matplotlib.path.Path.MOVETO,
matplotlib.path.Path.LINETO,
matplotlib.path.Path.LINETO,
matplotlib.path.Path.LINETO,
matplotlib.path.Path.CLOSEPOLY]
path = matplotlib.path.Path(verts, codes)
return path
目的のカスタム マーカーを使用して任意のデータをプロットできるようになりました。
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
figure = plt.figure()
axes = figure.add_subplot(1, 1, 1)
axes.plot(x, y, marker=getCustomMarker(), markerfacecolor='none', markersize=3)
plt.show()
これにより、希望するサイズで任意の位置に任意のマーカーをプロットできます。